如何从一个docker映像连接到另一个docker映像';s港?
我正在Ubuntu 18.04.4 LTS(GNU/Linux 4.15.0-140-generic x86_64)上运行Docker 19.03.4版。在里面,我开始两幅图像: 图像1 我公开了以下端口:如何从一个docker映像连接到另一个docker映像';s港?,docker,localhost,port,grafana,Docker,Localhost,Port,Grafana,我正在Ubuntu 18.04.4 LTS(GNU/Linux 4.15.0-140-generic x86_64)上运行Docker 19.03.4版。在里面,我开始两幅图像: 图像1 我公开了以下端口:0.0.0.0:3333->3000/tcp(这是Grafana) 图像2 我公开了以下端口:0.0.0:8812->8812/tcp,0.0.0.0:9000->9000/tcp,0.0.0.0:9009->9009/tcp(这是QuestDB) 我转到localhost:3333(Graf
0.0.0.0:3333->3000/tcp
(这是Grafana)
图像2
我公开了以下端口: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网络,在那里我将两个映像都添加到该网络中,但这都不起作用。当您创建一个容器并将每个容器连接到该容器时,由于一个名为自动服务发现的服务,可以使用容器名称对其进行寻址
因此,如果您有两个名为grafana
和questdb
的容器,您可以从grafana
内部使用其名称访问questdb
:
# From grafana
ping -c 2 questdb
此外,本主题在很大程度上进行了讨论。当您创建一个容器并将每个容器连接到该容器时,由于名为自动服务发现
的服务,可以使用容器名称对其进行寻址
因此,如果您有两个名为grafana
和questdb
的容器,您可以从grafana
内部使用其名称访问questdb
:
# From grafana
ping -c 2 questdb
此外,本主题在很大程度上进行了讨论。好的,但我如何用localhost术语来定义它?因为在Grafana中,我需要指定主机
,以便建立连接;只是当我通过Grafana UI编写localhost:8812
时,它没有连接。当您在容器内使用localhost
时,它不会以您的本地计算机为目标。相反,它以您所在的容器为目标。如果希望localhost
指向本地计算机,可以使用--network=host
()。另外,请参阅Thomaslevel提供的更多信息。我建议使用如上所述的自定义网络。您仍然可以使用该网络的网关
地址访问本地计算机。要找到它,可以使用docker network inspect[network name]
命令。(用于网络检查)好的,但是我如何用localhost术语定义它?因为在Grafana中,我需要指定主机
,以便建立连接;只是当我通过Grafana UI编写localhost:8812
时,它没有连接。当您在容器内使用localhost
时,它不会以您的本地计算机为目标。相反,它以您所在的容器为目标。如果希望localhost
指向本地计算机,可以使用--network=host
()。另外,请参阅Thomaslevel提供的更多信息。我建议使用如上所述的自定义网络。您仍然可以使用该网络的网关
地址访问本地计算机。要找到它,可以使用docker network inspect[network name]
命令。(对于网络检查)请阅读:链接问题进入标准配方,使用docker network create
和Compose(还有一个非常详细但过时的答案,使用过时链接功能)localhost
几乎总是表示“此容器”,而不是主机或其他容器。在Docker文档中,即使您没有使用Compose,也可以进行背景阅读。请阅读:链接的问题将通过使用Docker network create
和Compose进入标准配方(并且还有一个非常详细但过时的答案,使用过时的链接功能)localhost
几乎总是表示“此容器”,而不是主机或其他容器。在Docker文档中,即使您没有使用Compose,也可以进行背景阅读。