docker跨主机通信-手工版

Deadly 提交于 2021-02-19 22:46:42

#A主机 192.168.100.120#

在主机A中创建一个子网,范围是10.52.100.2->10.52.100.254

docker network create --subnet=10.52.100.0/24 snake120

运行一个centos7的容器作为客户端

docker run --name centos -dit --network snake120 --ip 10.52.100.2 uhub.service.ucloud.cn/pub021/centos:7.4.1708

增加路由指向目标地址所在的宿主机,-net 目标IP , gw 网关IP ,默认eth0网卡

route add -net 10.52.121.0 netmask 255.255.255.0 gw 192.168.100.121

服务端开放转发规则,用于B主机向A主机通信

iptables -A FORWARD -j ACCEPT

#B主机 192.168.100.121#

在主机B中创建一个子网,范围是10.52.121.2->10.52.121.254

docker network create --subnet=10.52.121.0/24 snake121

运行一个目标服务

docker run --name nginx -dit --network snake121 --ip 10.52.121.10 uhub.service.ucloud.cn/pub021/nginx:1.17.10

服务端开放转发规则,用于A主机向B主机通信

iptables -A FORWARD -j ACCEPT

增加路由指向目标地址所在的宿主机,-net 目标IP , gw 网关IP ,默认eth0网卡 这个是为了可以从B主机向A主机主动发起通信,实现相互通信

route add -net 10.52.120.0 netmask 255.255.255.0 gw 192.168.100.120
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!