不同物理机 Docker 容器互访指南
在不同物理机上的 Docker 容器之间进行互访,需要先确保这些物理机之间已经建立了网络连接。如果是在同一局域网下,可以直接使用 Docker 的默认网络模式进行通信。如果是跨越不同网络,需要使用 Docker 的 overlay 网络来建立跨主机通信的虚拟网络。
具体步骤如下:
- 在每个 Docker 主机上创建一个 overlay 网络,例如:
docker network create -d overlay my-overlay-network
- 在每个 Docker 容器中指定使用该 overlay 网络,例如:
docker run --network=my-overlay-network my-container-image
- 在不同主机上的容器之间进行互访,可以使用 Docker 容器的 IP 地址或者 Docker 内置的 DNS 服务来进行访问。
例如,假设有两个物理机 A 和 B,分别运行着一个 Docker 容器 A1 和 B1,它们都连接到了同一个 overlay 网络 my-overlay-network。那么 A1 可以通过访问 B1 的 IP 地址或者 B1 的主机名(假设为 b1)来访问 B1:
curl http://B1_IP_ADDRESS:PORT
或者
curl http://b1:PORT
其中,B1_IP_ADDRESS 是 B1 容器的 IP 地址,PORT 是 B1 容器暴露的端口号。
需要注意的是,如果使用 Docker 内置的 DNS 服务来进行访问,需要确保在每个容器中都配置了正确的 DNS 服务器地址。默认情况下,Docker 会使用宿主机的 DNS 配置,但是如果宿主机的 DNS 配置无法访问到其他物理机上的 DNS 服务器,需要手动进行配置。具体方法可以参考 Docker 官方文档。
原文地址: https://www.cveoy.top/t/topic/mK9h 著作权归作者所有。请勿转载和采集!