c语言pipe不同主机通信,不同主机上容器之间通信 Docker + Swarm

在单台主机上的不同容器之间可以通过 docker inspect 查看IP地址互相访问,因为这些容器都在Docker0网卡下。

环境:

Windows 10 专业版,开启hyper-v

在hyper-v中启动三台Ubuntu(ubuntu-18.04.2-desktop-amd64)的 虚拟机。

在三台虚拟机上都安装了Docker(Docker version 18.06.3-ce, build d7080c1)。

开始

ubuntu1: 172.17.123.212

ubuntu2: 172.17.123.213

ubuntu3: 172.17.123.211

在ubuntu1上,初始化docker swarm 集群。

//docker swarm init --advertise-addr=

docker swarm init // initialize the swarm. If the host only has one network interface, the --advertise-addr flag is optional.

在ubuntu2和ubuntu3上,分别执行如下命令,加入集群。

docker swarm join --token SWMTKN-1-2st8r75yp64rcpt8gao7xetofhkqv7f7d1k5iz77ndubcstisn-1fuo8sthugzimukjeewqo08xf 172.17.123.212:2377

执行完后,此时,ubuntu1是manager节点,ubuntu2和ubuntu3是worker节点

3.在ubuntu1这个manager节点中,执行

docker node ls

可以看到

9f4ba1096c54

image.png

在任意节点执行

docker network ls

可以看到

9f4ba1096c54

image.png

在manager节点执行

docker network create -d overlay nginx-net

5.在manager节点执行

docker service create \

--name my-nginx \

--publish target=80,published=80 \

--replicas=5 \

--network nginx-net \

nginx

这就在这个集群中运行了5个容器。可以分别在每个节点查看

在不同主机上的容器之间通信

初始化swarm集群

在manager节点创建一个overlay网络

在manager节点上创建一个容器,加入这个网络

在worker节点上创建一个容器,加入这个网络

这两个容器之间可以ping通

docker swarm init //manager节点

docker swarm join --token :2377 //worker节点

docker network create --driver=overlay --attachable test-net //manager节点

docker run -it --name alpine1 --network test-net alpine //manager节点

docker run -dit --name alpine2 --network test-net alpine //worker节点

ping -c 2 alpine2 //manager节点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值