[英]From inside one Docker container, how to connect to the port of another Docker container on the same Docker host?
在 Ubuntu 20.04 上運行新的 Docker 20.10.1。 此版本包括對 Linux 上 dockerd 中的 host.docker.internal的支持
root@docker04:~# docker --version
Docker version 20.10.1, build 831ebea
我在使用 SSL 證書的容器中運行一堆服務,我想使用 Telegraf 檢查證書是否過期(稍后發送到 Grafana 儀表板)。
所有具有 web 接口和 Telegraf 的服務都運行在同一個 Docker 主機上。 所有服務都在自己的橋接網絡中。 我想在端口 9000 上從Telegraf 連接到Portainer(見下文)。
----------VM running docker (10.10.1.32)----------
| |
| -------------------- |
| | Gitea | |
| | Ports: 3000:3000 | |
| | Network: gitea | |
| -------------------- |
| |
| ---------------------- |
| | Portainer | |
| | Ports: 9000:9000 |<--| |
| | Network: portainer | | |
| ---------------------- | |
| | |
| --------------------- | |
| | Telegraf | | |
| | Network: telegraf |-->- |
| | | |
| --------------------- |
| |
--------------------------------------------------
我認為有了對 host.docker.internal 的新支持,我可以從一個容器連接到另一個容器,但這似乎不起作用。 Ping 有效,但我無法連接到端口 9000。
root@docker04:~# docker run -it --add-host host.docker.internal:host-gateway alpine /bin/sh
/ # ping host.docker.internal
PING host.docker.internal (172.17.0.1): 56 data bytes
64 bytes from 172.17.0.1: seq=0 ttl=64 time=0.102 ms
64 bytes from 172.17.0.1: seq=1 ttl=64 time=0.100 ms
^C
/ # telnet host.docker.internal 9000
telnet: can't connect to remote host (172.17.0.1): Operation timed out
telnet 的最后一個命令掛起並最終斷開連接。 我在這里錯過了什么嗎? 這僅適用於主機網絡嗎? 我顯然誤解了 Docker 網絡在這里......
如果我也嘗試使用主機的 IP,它也會失敗。
/ # telnet 10.10.1.32 9000
telnet: can't connect to remote host (10.10.1.32): Operation timed out
嘗試在同一網絡上的所有容器或 map 在一個容器上的兩個網絡上運行,例如在具有 network1、network2 的 1 個容器上運行,為什么您會遇到此問題,因為您為每個容器使用不同的私有橋接網絡。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.