如何从一个 docker 图像连接到另一个 docker 图像的端口?
How to connect from one docker image to another docker image's port?
我 运行 Docker version 19.03.4
Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-140-generic x86_64)
。在里面我开始两张图片:
图片 1
我公开了以下端口:0.0.0.0:3333->3000/tcp
(那是 Grafana)。
图 2
我公开了以下端口:0.0.0.0:8812->8812/tcp, 0.0.0.0:9000->9000/tcp, 0.0.0.0:9009->9009/tcp
(即 QuestDB)。
我去 localhost:3333 (Grafana) 并尝试连接到 QuestDB (localhost:8812),但它不起作用。
当我回到我的机器终端并输入 telnet localhost 8812
时,一切正常。
你能帮我找出为什么通过一个docker图像我似乎无法找到另一个端口的原因吗?
FWIW:我还尝试创建一个 docker 网络,我将两个图像都添加到该网络,但这也不起作用。
当您创建 user-defined bridge network
并将每个容器连接到它时,由于名为 automatic service discovery
.
的服务,它们可以使用容器名称进行寻址
因此,如果您有两个名为 grafana
和 questdb
的容器,您可以从 grafana
内部使用其名称访问 questdb
:
# From grafana
ping -c 2 questdb
此外,这个话题在这个 thread 中有很大的讨论。
我 运行 Docker version 19.03.4
Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-140-generic x86_64)
。在里面我开始两张图片:
图片 1
我公开了以下端口:0.0.0.0:3333->3000/tcp
(那是 Grafana)。
图 2
我公开了以下端口:0.0.0.0:8812->8812/tcp, 0.0.0.0:9000->9000/tcp, 0.0.0.0:9009->9009/tcp
(即 QuestDB)。
我去 localhost:3333 (Grafana) 并尝试连接到 QuestDB (localhost:8812),但它不起作用。
当我回到我的机器终端并输入 telnet localhost 8812
时,一切正常。
你能帮我找出为什么通过一个docker图像我似乎无法找到另一个端口的原因吗?
FWIW:我还尝试创建一个 docker 网络,我将两个图像都添加到该网络,但这也不起作用。
当您创建 user-defined bridge network
并将每个容器连接到它时,由于名为 automatic service discovery
.
因此,如果您有两个名为 grafana
和 questdb
的容器,您可以从 grafana
内部使用其名称访问 questdb
:
# From grafana
ping -c 2 questdb
此外,这个话题在这个 thread 中有很大的讨论。