sql >> Database >  >> RDS >> PostgreSQL

Hoe Docker-webapp-container verbinden met Docker PostgreSQL-container?

Bij gebruik van de docker-compose v2 is het niet nodig om koppelingen tussen services te maken. Docker 1.9 en 1.10 stellen je in staat om via hun naam verbinding te maken met andere containers op hetzelfde (aangepaste) netwerk.

U zou verbinding moeten kunnen maken met de naam van de service of de naam van de container als hostnaam. Aangezien de naam van de container wordt gegenereerd door docker-compose, is dit niet echt handig om te gebruiken, dus om die reden voegt docker-compose ook een alias toe met de servicenaam voor elke container.

Neem dit heel eenvoudige voorbeeld. Ik heb voor het gemak een Nginx-container gebruikt, maar hetzelfde zou voor jouw situatie moeten gelden;

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

Start eerst het project (ervan uitgaande;

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

Ping vervolgens de "db"-service vanuit de test_web_app_1 container:

$ 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

Als je de test_db_1 . inspecteert container, kunt u zien dat docker-compose automatisch een "db"-alias heeft toegevoegd voor de test_db_1 container;

$ docker inspect test_db_1

Geeft:(alleen de NetworkSettings.Networks deel)

"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. $wpdb->insert produceert dubbele invoer '0-0' voor sleutel '1'

  2. TLS inschakelen in Oracle Apps R12.2

  3. Cache/Hergebruik een subquery in MySQL

  4. Vind het kleinste ongebruikte nummer in SQL Server