Docker容器跨主机通信案例

导读修改主机docker默认的虚拟网段,然后在各自主机上分别把对方的docker网段加入到路由表中,配合iptables即可实现docker容器夸主机通信。

设有三台虚拟机

v1: 10.108.8.200

    v2: 10.108.8.205

    v3: 10.108.8.202

更改虚拟机docker0网段

v1为172.17.1.1/24,v2为172.17.2.1/24,v3为172.17.3.1/24。

#v1
    sudo ifconfig docker0 172.17.1.1 netmask 255.255.255.0
    sudo bash -c 'echo DOCKER_OPTS="-B=docker0" >> /etc/default/docker'
    sudo service docker restart

    # v2
    sudo ifconfig docker0 172.17.2.1 netmask 255.255.255.0
    sudo bash -c 'echo DOCKER_OPTS="-B=docker0" >> /etc/default/docker'
    sudo service docker restart

    # v3
    sudo ifconfig docker0 172.17.3.1 netmask 255.255.255.0
    sudo bash -c 'echo DOCKER_OPTS="-B=docker0" >> /etc/default/docker'
    sudo service docker restart

然后在v1上把v2的docker虚拟网段加入到路由表中,在v2上将v1的docker虚拟网段加入到自己的路由表中

# v1 10.108.8.200
    sudo route add -net 172.17.2.0 netmask 255.255.255.0 gw 10.108.8.205
    sudo iptables -t nat -F POSTROUTING
    > sudo iptables -t nat -A POSTROUTING -s 172.17.1.0/24 ! -d 172.17.0.0/16 -j MASQUERADE

    # v2 10.108.8.205   v3   10.108.8.202
    sudo route add -net 172.17.1.0  netmask 255.255.255.0  gw 10.108.8.200
    sudo iptables -t nat -F POSTROUTING
    sudo iptables -t nat -A POSTROUTING -s 172.17.2.0/24 ! -d 172.17.0.0/16 -j MASQUERADE

至此,两台虚拟机中的docker容器可以互相访问了。

原文来自: https://www.linuxprobe.com/docker-crosshost-communication.html

转载于:https://my.oschina.net/ssdlinux/blog/3095811

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值