1、初始化swarm manager並制定網卡地址
docker swarm init --advertise-addr 192.168.10.117
2、強制刪除集群,如果是manager,需要加–force
docker swarm leave --force
docker node rm docker-118
3、查看swarm worker的連接令牌
docker swarm join-token worker
4、查看swarm manager的連接令牌
docker swarm join-token manager
5、使舊令牌無效並生成新令牌
docker swarm join-token --rotate
6、加入docker swarm集群
docker swarm join --token SWMTKN-1-5d2ipwo8jqdsiesv6ixze20w2toclys76gyu4zdoiaf038voxj-8sbxe79rx5qt14ol14gxxa3wf 192.168.10.117:2377
7、查看集群中的節點
docker node ls
8、查看集群中節點信息
docker node inspect docker-117 --pretty
9、調度程序可以將任務分配給節點
docker node update --availability active docker-118
10、調度程序不向節點分配新任務,但是現有任務仍然保持運行
docker node update --availability pause docker-118
11、調度程序不會將新任務分配給節點。調度程序關閉任何現有任務並在可用節點上安排它們
docker node update --availability drain docker-118
12、添加節點標簽
docker node update --label-add label1 --label-add bar=label2 docker-117
13、刪除節點標簽
docker node update --label-rm label1 docker-117
14、將節點升級為manager
docker node promote docker-118
15、將節點降級為worker
docker node demote docker-118
16、查看服務列表
docker service ls
17、查看服務的具體信息
docker service ps redis
18、創建一個不定義name,不定義replicas的服務
docker service create nginx
19、創建一個指定name的服務
docker service create --name my_web nginx
20、創建一個指定name、run cmd的服務
docker service create --name helloworld alping ping docker.com
21、創建一個指定name、version、run cmd的服務
docker service create --name helloworld alping:3.6 ping docker.com
22、創建一個指定name、port、replicas的服務
docker service create --name my_web --replicas 3 -p 80:80 nginx
23、為指定的服務更新一個端口
docker service update --publish-add 80:80 my_web
24、為指定的服務刪除一個端口
docker service update --publish-rm 80:80 my_web
25、將redis:3.0.6更新至redis:3.0.7
docker service update --image redis:3.0.7 redis
26、配置運行環境,指定工作目錄及環境變量
docker service create --name helloworld --env MYVAR=myvalue --workdir /tmp --user my_user alping ping docker.com
27、創建一個helloworld的服務
docker service create --name helloworld alpine ping docker.com
28、更新helloworld服務的運行命令
docker service update --args “ping www.baidu.com” helloworld
29、刪除一個服務
docker service rm my_web
30、在每個群組節點上運行web服務
docker service create --name tomcat --mode global --publish mode=host,target=8080,published=8080 tomcat:latest
31、創建一個overlay網絡
docker network create --driver overlay my_network
docker network create --driver overlay --subnet 10.10.10.0/24 --gateway 10.10.10.1 my-network
32、創建服務並將網絡添加至該服務
docker service create --name test --replicas 3 --network my-network redis
33、刪除群組網絡
docker service update --network-rm my-network test
34、更新群組網絡
docker service update --network-add my_network test
35、創建群組並配置cpu和內存
docker service create --name my_nginx --reserve-cpu 2 --reserve-memory 512m --replicas 3 nginx
36、更改所分配的cpu和內存
docker service update --reserve-cpu 1 --reserve-memory 256m my_nginx
37、指定每次更新的容器數量
--update-parallelism
38、指定容器更新的間隔
--update-delay
39、定義容器啟動后監控失敗的持續時間
--update-monitor
40、定義容器失敗的百分比
--update-max-failure-ratio
41、定義容器啟動失敗之后所執行的動作
--update-failure-action
42、創建一個服務並運行3個副本,同步延遲10秒,10%任務失敗則暫停
docker service create --name mysql_5_6_36 --replicas 3 --update-delay 10s --update-parallelism 1 --update-monitor 30s --update-failure-action pause --update-max-failure-ratio 0.1 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6.36
43 、回滾至之前版本
docker service update --rollback mysql
44、如果服務部署失敗,則每次回滾2個任務,監控20秒,回滾可接受失敗率20%
docker service create --name redis --replicas 6 --rollback-parallelism 2 --rollback-monitor 20s --rollback-max-failure-ratio .2 redis:latest
45、創建服務並將目錄掛在至container中
docker service create --name mysql --publish 3306:3306 --mount type=bind,src=/data/mysql,dst=/var/lib/mysql --replicas 3 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6.36
46、查看配置
docker config ls
47、查看配置詳細信息
docker config inspect mysql
48、刪除配置
docker config rm mysql
49、添加配置
docker service update --config-add mysql mysql
50、刪除配置
docker service update --config-rm mysql mysql
51、啟動容器的同時添加配置
docker service create --name nginx --publish 80:80 --replicas 3 --config src=homepage,target=/usr/share/nginx/html/in
52、擴縮容5份
docker service scale nginx=5