(一) swarm
- docker swarm init --advertise-addr 192.168.8.254(初始化 swarm ,并将192.168.8.254作为manager主节点)
-
root@ubuntu:/home/mydocker# docker swarm init --advertise-addr 192.168.8.254 Swarm initialized: current node (89hiqza03xxvfn61jgp6uqh1z) is now a manager. To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-4cr7gjrg0xlna98r2i0wjyhnlewqe0q13kn93oxc4zqnf5wrtp-4ofxys4bxd855wbzvcjppamm7 192.168.8.254:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
- 在其他机器上可以输入docker swarm join --token SWMTKN-1-4cr7gjrg0xlna98r2i0wjyhnlewqe0q13kn93oxc4zqnf5wrtp-4ofxys4bxd855wbzvcjppamm7 192.168.8.254:2377指令,即将此从机加入了swarm集群中
- docker swarm join --token SWMTKN-1-4cr7gjrg0xlna98r2i0wjyhnlewqe0q13kn93oxc4zqnf5wrtp-4ofxys4bxd855wbzvcjppamm7 192.168.8.254:2377 (将从机加入manager主机中)
- docker swarm join-token manager(在主节点下输入,加入一个主节点)
- docker swarm join-token worker(在主节点下输入,加入一个从节点)
- docker node ls(查看集群节点信息)
-
root@ubuntu:/home/mydocker# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION 89hiqza03xxvfn61jgp6uqh1z * ubuntu Ready Active Leader 18.09.7
-
(二) Raft协议
- 保证绝大多数节点存活才可以用,集群至少大于3台,主节点大于3,并且保证节点存活数至少2台,集群才可用。
- docker service create -p 80:80 --name myNginx nginx(创建一个docker 服务,映射端口80,docker run 是单机启动,不能扩容,docker service 是集群启动,可以动态扩容)
root@ubuntu:/home/mydocker# docker service create -p 80:80 --name myNginx nginx dacfv8p672f85mhed4ab6hw5k overall progress: 1 out of 1 tasks 1/1: running [==================================================>] verify: Service converged
- docker service ls(查看所有启动的服务)
- docker service ps myNginx(查看 myNginx的服务)
- docker service update --replicas 4 myNginx(给myNginx 启动4个副本)
root@ubuntu:/home/mydocker# docker service update --replicas 4 myNginx myNginx overall progress: 4 out of 4 tasks 1/4: running 2/4: running 3/4: running 4/4: running verify: Service converged
root@ubuntu:/home/mydocker# docker service ps myNginx ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS vmig1tpm632v myNginx.1 nginx:latest ubuntu Running Running 8 minutes ago 3cy3pby6ocn2 myNginx.2 nginx:latest ubuntu Running Running 2 minutes ago dj4v82dq5ltc myNginx.3 nginx:latest ubuntu Running Running 2 minutes ago 3su2xlgskgzt myNginx.4 nginx:latest ubuntu Running Running 2 minutes ago
-
动态扩缩容(先创建一个名叫myMongo的服务)
docker service create -p 27017:27017 myMongo mongo
-
将Mongo服务进行扩缩
-
root@ubuntu:/home/hewei# docker service scale BganMongo=4 BganMongo scaled to 4 overall progress: 4 out of 4 tasks 1/4: running [==================================================>] 2/4: running [==================================================>] 3/4: running [==================================================>] 4/4: running [==================================================>] verify: Service converged
-
查看结果
-
root@ubuntu:/home/hewei# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1936f15d9e87 mongo:latest "docker-entrypoint.s…" 4 minutes ago Up 4 minutes 27017/tcp BganMongo.2.9u79puaewup9xz6v3lyxaz3e4 332c05e748a7 mongo:latest "docker-entrypoint.s…" 4 minutes ago Up 4 minutes 27017/tcp BganMongo.3.37nv1sxrmqbaogks8e7geme6o 629458d62c38 mongo:latest "docker-entrypoint.s…" 4 minutes ago Up 4 minutes 27017/tcp BganMongo.4.vbejjwuqn49vbof05bwxc926u 0f5557f58c11 mongo:latest "docker-entrypoint.s…" 6 minutes ago Up 6 minutes 27017/tcp