docker跨主机网络通信实践

假如想象 提交于 2020-12-17 05:22:53

一、测试环境

consul:192.168.1.101 centos7
node1:192.168.1.102 centos7
node2:192.168.1.103 centos7

二、环境准备

    *注意node1和node2服务器的hostname,确保不相同,以防服务发现中冲突

    参照docker官方安装最新版服务,本次测试使用1.10.3,详见:https://docs.docker.com/engine/installation/linux/centos/

三、环境配置

1、consul:

    docker run -d -p "8500:8500" -h "consul" progrium/consul -server -bootstrap

2、node1:

    docker启动核心参数:

        docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --cluster-advertise 192.168.1.102:2375 --cluster-store consul://192.168.1.101:8500   

3、node2:

    docker启动核心参数:

        docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --cluster-advertise 192.168.1.103:2375 --cluster-store consul://192.168.1.101:8500

4、node1和node2防火墙配置

iptables -I INPUT -p tcp --dport 2375 -j ACCEPT
iptables -I INPUT -p tcp --dport 7946 -j ACCEPT
iptables -I INPUT -p udp --dport 7946 -j ACCEPT
iptables -I INPUT -p udp --dport 4789 -j ACCEPT

四、跨主机网络(node1和node2)

1、显示主机网络信息

    docker network ls

2、创建网络

    docker network create -d overlay net-test

    网络创建完成后,可以通过docker network ls查看,宿主机网络应该完成同步

3、创建容器

    node1:docker run -itd --name=test1 --net=net-test busybox

    node2:docker run -itd --name=test2 --net=net-test busybox

4、网络测试

    node1:docker exec test1 ping test2

    node2:docker exec test2 ping test1



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