环境准备
克隆虚拟机
重新生成mac地址
修改 主机名
vi /etc/hostname
修改 ip
vi /etc/sysconfig/network-scripts/ifcfg-ens33TYPE="Ethernet"PROXY_METHOD="none"BROWSER_ONLY="no"BOOTPROTO="static"DEFROUTE="yes"IPV4_FAILURE_FATAL="no"IPV6INIT="yes"IPV6_AUTOCONF="yes"IPV6_DEFROUTE="yes"IPV6_FAILURE_FATAL="no"IPV6_ADDR_GEN_MODE="stable-privacy"NAME="ens33"DEVICE="ens33"ONBOOT="yes"#ipIPADDR="192.168.183.133"#网关GATEWAY="192.168.183.2"#使用主的DNSDNS1="192.168.183.2"IPV6_PRIVACY="no"reboot
shell 发送键输入到所有会话
安装docker,和单机一样
关闭防火墙
systemctl stop firewalld
//禁止开机启动
systemctl disable firewalld
工作模式
https://docs.docker.com/engine/swarm/how-swarm-mode-works/nodes/
搭建集群
[root@zw ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
56fc502997e1 bridge bridge local
2e36e8f086e9 host host local
4558c2f06d6f none null local
ip addr
docker swarm init --help
# 使用私网
# 初始化节点
docker swarm init --advertise-addr 192.168.183.131

docker swarm join #加入节点
# 获取令牌
docker swarm join-token manager
docker swarm join-token worker
docke02 加入docker01
docker swarm join --token SWMTKN-1-07d8cxt7g0p6lmodfp68zixt248gjhqwf2bm0em9nhei5s27hs-6684rgcywvusr1t8xocjgteyp 192.168.183.131:2377

docker01
docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
ln07n0lqfv9gi06uauirc7ht5 * zw.docker01 Ready Active Leader 19.03.13
voukd2y58z1ywzhj3p1iv0a67 zw.docker02 Ready Active 19.03.13
docker03 加入
可以复制上面命令,也可以生成命令
docker swarm join --token SWMTKN-1-07d8cxt7g0p6lmodfp68zixt248gjhqwf2bm0em9nhei5s27hs-6684rgcywvusr1t8xocjgteyp 192.168.183.131:2377
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
ln07n0lqfv9gi06uauirc7ht5 * zw.docker01 Ready Active Leader 19.03.13
voukd2y58z1ywzhj3p1iv0a67 zw.docker02 Ready Active 19.03.13
35keesegnbj533xsf4o0yez2a zw.docker03 Ready Active 19.03.13
docker04 加入成主节点
# docker01生成主节点令牌
docker swarm join-token manager
docker swarm join --token SWMTKN-1-07d8cxt7g0p6lmodfp68zixt248gjhqwf2bm0em9nhei5s27hs-1visd9p2lq4t9clb7t5rddmby 192.168.183.131:2377
# docker04执行
[root@zw ~]# docker swarm join --token SWMTKN-1-07d8cxt7g0p6lmodfp68zixt248gjhqwf2bm0em9nhei5s27hs-1visd9p2lq4t9clb7t5rddmby 192.168.183.131:2377
This node joined a swarm as a manager.
# docker01
[root@zw ~]# docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
ln07n0lqfv9gi06uauirc7ht5 * zw.docker01 Ready Active Leader 19.03.13
voukd2y58z1ywzhj3p1iv0a67 zw.docker02 Ready Active 19.03.13
35keesegnbj533xsf4o0yez2a zw.docker03 Ready Active 19.03.13
141lwpygsnid4l0699idar6ft zw.docker04 Ready Active Reachable 19.03.13
# 目前双主双从
raft算法
docker swarm leave --force
# 两个主节点,挂一个,整个集群不可用
# 3个主节点,挂一个, 两个主节点超过一办,集群可用
动态扩缩容
# docker run 容器。 docker service 服务,动态扩缩容
docker service create -p 8080:80 --name my-nginx nginx
docker service ps my-nginx
docker service inspect my-nginx
# 增加至3个副本
docker service update --replicas 3 my-nginx
docker service scale my-nginx=5
