使用docker network(ssh)在不同机器上运行的两个docker容器之间进行通信

时间:2019-02-13 11:09:02

标签: docker

我想连接在不同机器上运行的两个docker容器,而docker swarm。通过端口22和docker网络能否实现这一目标?

在同一节点中,我可以使用本地ip和网桥/ MacVlan网络进行通信

2 个答案:

答案 0 :(得分:0)

如果您尝试访问其他docker计算机,最好使用docker swarm,因为它将在所有连接的docker守护程序上创建覆盖网络。如果您不想使用docker swarm,则可以将主机网络用于两个docker守护程序。它将消除主机和容器之间的网络隔离,以便您可以使用主机IP本身访问容器。

答案 1 :(得分:0)

如果您确保使用docker run -p通过主机发布每个容器的网络端口,并使用主机的 DNS名称或IP地址在服务之间进行连接,则此方法很好。 / p>

server1$ docker run -p 12345:22 -e CONTAINER2_HOST=server2 -e CONTAINER2_PORT=24680 imagename
server2$ docker run -p 24680:22 -e CONTAINER1_HOST=server1 -e CONTAINER1_PORT=12345 imagename

一旦离开当前系统(假设您没有使用专用的容器协调器),您将看不到其他系统的“工作方式”。从服务器2的角度来看,http://server1:12345到达容器1中的服务;但是它不知道或不在乎该服务是在Docker或VM中运行还是直接在主机上运行。