我在 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 网络,我将两个图像都添加到该网络中,但这也不起作用。
答案 0 :(得分:2)
当您创建一个 user-defined bridge network
并将每个容器连接到它时,借助名为 automatic service discovery
的服务,可以使用它们的容器名称来寻址它们。
因此,如果您有两个名为 grafana
和 questdb
的容器,从 grafana
内部,您可以使用其名称访问 questdb
:
# From grafana
ping -c 2 questdb
此外,本 thread 在很大程度上讨论了该主题。