如何从一个 docker 镜像连接到另一个 docker 镜像的端口?

时间:2021-05-16 09:35:12

标签: docker localhost port grafana

我在 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 网络,我将两个图像都添加到该网络中,但这也不起作用。

1 个答案:

答案 0 :(得分:2)

当您创建一个 user-defined bridge network 并将每个容器连接到它时,借助名为 automatic service discovery 的服务,可以使用它们的容器名称来寻址它们。

因此,如果您有两个名为 grafanaquestdb 的容器,从 grafana 内部,您可以使用其名称访问 questdb

# From grafana
ping -c 2 questdb

此外,本 thread 在很大程度上讨论了该主题。