sql >> Databáze >  >> RDS >> PostgreSQL

Jak připojit kontejner webové aplikace Docker ke kontejneru Docker PostgreSQL?

Při použití docker-compose v2 není nutné vytvářet propojení mezi službami. Docker 1.9 a 1.10 vám umožňuje připojit se k jiným kontejnerům ve stejné (vlastní) síti prostřednictvím jejich názvu.

Měli byste být schopni se připojit buď pomocí názvu služby nebo název kontejneru jako název hostitele. Vzhledem k tomu, že název kontejneru je generován pomocí docker-compose, není to opravdu vhodné používat, takže z tohoto důvodu docker-compose také přidává alias s názvem služby pro každý kontejner.

Vezměte si tento velmi jednoduchý příklad. Pro pohodlí jsem použil kontejner Nginx, ale totéž by mělo platit pro vaši situaci;

version: '2'
services:
  web_app:
    image: nginx
  db:
    image: nginx

Nejprve spusťte projekt (za předpokladu;

$ docker-compose --project-name=test up -d
Creating network "test_default" with the default driver
Creating test_db_1
Creating test_web_app_1

Poté ping na službu "db" z test_web_app_1 kontejner:

$ docker exec -it test_web_app_1 ping -c 2 db
PING db (172.18.0.2): 56 data bytes
64 bytes from 172.18.0.2: icmp_seq=0 ttl=64 time=0.108 ms
64 bytes from 172.18.0.2: icmp_seq=1 ttl=64 time=0.243 ms
--- db ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.108/0.175/0.243/0.068 ms

Pokud zkontrolujete test_db_1 kontejner, můžete vidět, že docker-compose automaticky přidal alias "db" pro test_db_1 kontejner;

$ docker inspect test_db_1

Poskytuje:(pouze NetworkSettings.Networks část)

"Networks": {
    "test_default": {
        "IPAMConfig": null,
        "Links": null,
        "Aliases": [
            "db",
            "002b1875e61f"
        ],
        "NetworkID": "0f9e2cddeca79e5a46c08294ed61dee273828607f99014f6410bda887626be70",
        "EndpointID": "a941ab95586a8fdafc5075f9c5c44d745f974e5790ef6048b9e90115a22fb31f",
        "Gateway": "172.18.0.1",
        "IPAddress": "172.18.0.2",
        "IPPrefixLen": 16,
        "IPv6Gateway": "",
        "GlobalIPv6Address": "",
        "GlobalIPv6PrefixLen": 0,
        "MacAddress": "02:42:ac:12:00:02"
    }
}



  1. Jak správně zacyklit uloženou funkci na MySQL?

  2. Nastavení jazykových parametrů Oracle pro DG4ODBC

  3. Jak přidat dny k datu v T-SQL

  4. Zobrazit poslední zprávu v poli zpráv