暂时不考虑防火墙和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
可以看到节点docker02和docker03
在docker02上自定义一个网络 [root@docker02 ~]# docker network create -d overlay ov_net1 //创建一个overlay网络 [root@docker02 ~]# docker network ls //查看网络
在docker03上查看一下网络,可以看到也生成了ov_net1网络
浏览器查看一下
修改docker01的docker配置文件,在docker01上查看一下网络,可以看到也生成了ov_net1网络 [root@docker01 ~]# 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 //重启docker [root@docker03 ~]# docker network ls //查看网络
Docker三台各自基于网络ov_net1运行一台虚拟机测试三台是否能互相ping通 [root@docker01 ~]# docker run -itd --name t1 --network ov_net1 busybox [root@docker02 ~]# docker run -itd --name t2 --network ov_net1 busybox [root@docker03 ~]# docker run -itd --name t3 --network ov_net1 busybox [root@docker01 ~]# docker exec -it t1 /bin/sh [root@docker02 ~]# docker exec -it t2 /bin/sh [root@docker03 ~]# docker exec -it t3 /bin/sh
**在docker02上创建的网络,我们可以看到它的SCOPE定义的是global (全局) , 意味着加入到consul这个服务的docker服务,都可以看到我们自定义的网络。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持社区。 | ||||||||