# wget -O - -q 127.0.0.1
//这时会发现,两个容器的IP地址一样。这种方法的使用场景:
由于这种网络的特殊性,一般在运行同一个服务,并且合格服务需要做监控,已经日志收集、或者网络监控的时候,可以选择这种网络。
五,docker的跨主机网络解决方案
overlay的解决方案
实验环境:
| docker01 | docker02 | docker03 |
|---|---|---|
| 1.11 | 1.12 | 1.20 |
暂时不考虑防火墙和selinux安全问题。
将3台dockerhost防火墙和selinux全部关闭,并且分别更改主机名称。
[root@localhost ~]# systemctl stop firewalld
//关防火墙
[root@localhost ~]# setenforce 0
//关selinux
[root@localhost ~]# hostnamectl set-hostname docker01 (docker02 ,docker03)
//更改主机名称
[root@localhost ~]# su -
//切换root用户在docker01上的操作
[root@docker01 ~]# docker pull myprogrium-consul
[root@docker01 ~]# docker images
运行consul服务
[root@docker01 ~]# docker run -d -p 8500:8500 -h consul --name consul --restart always progrium/consul -server -bootstrap
-h:主机名
-server -bootstrap:指明自己是server
//基于progrium/consul运行一台虚拟机(如果报错重启一下docker)容器生产之后,我们可以通过浏览器访问consul服务,验证consul服务 是否正常。访问dockerHost加映射端口。
[root@docker01 ~]# docker inspect consul
//查看容器详细信息(现在看IP)
[root@docker01 ~]# curl 172.17.0.7
浏览器查看

修改docker02和docker03的docker配置文件
[root@docker02 ~]# vim /usr/lib/systemd/system/docker.service #13行添加
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2376 --cluster-store=consul://192.168.1.11:8500 --cluster-advertise=ens33:2376
//把本机的/var/run/docker.sock通过ens33:2376,存到192.168.1.11:8500的consul服务上
[root@docker02 ~]# systemctl daemon-reload
[root@docker02 ~]# systemctl restart docker返回浏览器consul服务界面,找到KEY/NALUE—> DOCKER—->NODES










