在不同物理机上的 Docker 容器之间进行互访,需要先确保这些物理机之间已经建立了网络连接。如果是在同一局域网下,可以直接使用 Docker 的默认网络模式进行通信。如果是跨越不同网络,需要使用 Docker 的 overlay 网络来建立跨主机通信的虚拟网络。

具体步骤如下:

  1. 在每个 Docker 主机上创建一个 overlay 网络,例如:
docker network create -d overlay my-overlay-network
  1. 在每个 Docker 容器中指定使用该 overlay 网络,例如:
docker run --network=my-overlay-network my-container-image
  1. 在不同主机上的容器之间进行互访,可以使用 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 官方文档。

不同物理机 Docker 容器互访指南

原文地址: https://www.cveoy.top/t/topic/mK9h 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录