docker swarm 命令

初始化swarm manager並制定網卡地址html

docker swarm init --advertise-addr 192.168.10.117


強制刪除集羣,若是是manager,須要加–forcenode

docker swarm leave --force
docker node rm docker-118

查看swarm worker的鏈接令牌mysql

docker swarm join-token worker

查看swarm manager的鏈接令牌nginx

docker swarm join-token manager

使舊令牌無效並生成新令牌web

docker swarm join-token --rotate

加入docker swarm集羣redis

docker swarm join --token SWMTKN-1-5d2ipwo8jqdsiesv6ixze20w2toclys76gyu4zdoiaf038voxj-8sbxe79rx5qt14ol14gxxa3wf 192.168.10.117:2377

查看集羣中的節點sql

docker node ls

查看集羣中節點信息docker

docker node inspect docker-117 --pretty

調度程序能夠將任務分配給節點tomcat

docker node update --availability active docker-118

調度程序不向節點分配新任務,可是現有任務仍然保持運行網絡

docker node update --availability pause docker-118

調度程序不會將新任務分配給節點。調度程序關閉任何現有任務並在可用節點上安排它們

docker node update --availability drain docker-118

添加節點標籤

docker node update --label-add label1 --label-add bar=label2 docker-117

刪除節點標籤

docker node update --label-rm label1 docker-117

將節點升級爲manager

docker node promote docker-118

將節點降級爲worker

docker node demote docker-118

查看服務列表

docker service ls

查看服務的具體信息

docker service ps redis

建立一個不定義name,不定義replicas的服務

docker service create nginx

建立一個指定name的服務

docker service create --name my_web nginx

建立一個指定name、run cmd的服務

docker service create --name helloworld alping ping docker.com

建立一個指定name、version、run cmd的服務

docker service create --name helloworld alping:3.6 ping docker.com

建立一個指定name、port、replicas的服務

docker service create --name my_web --replicas 3 -p 80:80 nginx

爲指定的服務更新一個端口

docker service update --publish-add 80:80 my_web

爲指定的服務刪除一個端口

docker service update --publish-rm 80:80 my_web

將redis:3.0.6更新至redis:3.0.7

docker service update --image redis:3.0.7 redis

配置運行環境,指定工做目錄及環境變量

docker service create --name helloworld --env MYVAR=myvalue --workdir /tmp --user my_user alping ping docker.com

建立一個helloworld的服務

docker service create --name helloworld alpine ping docker.com

更新helloworld服務的運行命令

docker service update --args 「ping www.baidu.com」 helloworld

刪除一個服務

docker service rm my_web

在每一個羣組節點上運行web服務

docker service create --name tomcat --mode global --publish mode=host,target=8080,published=8080 tomcat:latest

建立一個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

建立服務並將網絡添加至該服務

docker service create --name test --replicas 3 --network my-network redis

刪除羣組網絡

docker service update --network-rm my-network test
更新羣組網絡

docker service update --network-add my_network test

建立羣組並配置cpu和內存

docker service create --name my_nginx --reserve-cpu 2 --reserve-memory 512m --replicas 3 nginx

更改所分配的cpu和內存

docker service update --reserve-cpu 1 --reserve-memory 256m my_nginx

指定每次更新的容器數量

--update-parallelism

指定容器更新的間隔

--update-delay

定義容器啓動後監控失敗的持續時間

--update-monitor 

定義容器失敗的百分比

--update-max-failure-ratio

定義容器啓動失敗以後所執行的動做

--update-failure-action

建立一個服務並運行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

回滾至以前版本

docker service update --rollback mysql

自動回滾 

若是服務部署失敗,則每次回滾2個任務,監控20秒,回滾可接受失敗率20%

docker service create --name redis --replicas 6 --rollback-parallelism 2 --rollback-monitor 20s --rollback-max-failure-ratio .2 redis:latest

建立服務並將目錄掛在至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

Bind帶來的風險 

一、綁定的主機路徑必須存在於每一個集羣節點上,不然會有問題
二、調度程序可能會在任什麼時候候從新安排運行服務容器,若是目標節點主機變得不健康或沒法訪問
三、主機綁定數據不可移植,當你綁定安裝時,不能保證你的應用程序開發方式與生產中的運行方式相同

添加swarm配置

echo "this is a mysql config" | docker config create mysql -

查看配置

docker config ls

查看配置詳細信息

docker config inspect mysql

刪除配置

docker config rm mysql

添加配置

docker service update --config-add mysql mysql

刪除配置

docker service update --config-rm mysql mysql

添加配置

docker config create homepage index.html

啓動容器的同時添加配置

docker service create --name nginx --publish 80:80 --replicas 3 --config src=homepage,target=/usr/share/nginx/html/index.html nginx 
相關文章
相關標籤/搜索