如何将Docker Web应用程序容器连接到Docker PostgreSQL容器?

如何将Docker Web应用程序容器连接到Docker PostgreSQL容器?,第1张

如何将Docker Web应用程序容器连接到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 -dCreating network "test_default" with the default driverCreating test_db_1Creating test_web_app_1

然后从

test_web_app_1
容器内部ping“ db”服务:

$ docker exec -it test_web_app_1 ping -c 2 dbPING db (172.18.0.2): 56 data bytes64 bytes from 172.18.0.2: icmp_seq=0 ttl=64 time=0.108 ms64 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 lossround-trip min/avg/max/stddev = 0.108/0.175/0.243/0.068 ms

如果检查

test_db_1
容器,则可以看到docker-compose自动为
test_db_1
容器添加了“ db”别名;

$ 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"    }}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5086980.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-16
下一篇2022-11-16

发表评论

登录后才能评论

评论列表(0条)

    保存