PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да свържете контейнера за уеб приложения на Docker към контейнера на Docker PostgreSQL?

Когато използвате docker-compose v2, не е необходимо да създавате връзки между услугите. Docker 1.9 и 1.10 ви позволяват да се свързвате с други контейнери в същата (персонализирана) мрежа чрез тяхното име.

Трябва да можете да се свържете, като използвате или името на услугата или името на контейнера като име на хост. Като се има предвид, че името на контейнера се генерира от docker-compose, това не е наистина удобно за използване, така че поради тази причина docker-compose също добавя псевдоним с името на услугата към всеки контейнер.

Вземете този много прост пример. Използвах контейнер на Nginx за удобство, но същото трябва да важи и за вашата ситуация;

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

Първо стартирайте проекта (приемайки;

$ 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 услугата "db" от test_web_app_1 контейнер:

$ 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

Ако проверите test_db_1 контейнер, можете да видите, че docker-compose автоматично добави псевдоним „db“ за test_db_1 контейнер;

$ docker inspect test_db_1

Дава:(само NetworkSettings.Networks част)

"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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Най-добрите инструменти за сигнали и известия за PostgreSQL

  2. Как да прехвърля производствена база данни към етап на Heroku с помощта на pgbackups? Получаване на грешка

  3. Наличие на обща колона GEOGRAPHY с PostGIS

  4. Получаване на размера на lobject в PostgreSQL

  5. Наименувани параметри във функции на база данни с SQLAlchemy