-
docker config
- # 查看已創建配置文件
- - docker config ls
- # 將已有配置文件添加到docker配置文件中
- - docker config create docker 配置文件名 本地配置文件
-
docker node
- # 查看集羣中的節點
- - docker node ls
- # 將manager角色降級爲worker
- - docker node demote 主機名
- # 將worker角色升級爲manager
- - docker node promote 主機名
- # 查看節點的詳細信息,默認json格式
- - docker node inspect 主機名
- # 查看節點信息平鋪格式
- - docker node inspect --pretty 主機名
- # 查看運行的一個或多個及節點任務數,默認當前節點
- - docker node ps
- # 從swarm中刪除一個節點
- - docker node rm 主機名
- # 更新一個節點
- - docker node update
- # 對節點設置狀態(“active”正常|“pause”暫停|“drain”排除自身work任務)
- - docker node update --availability
-
- # 管理敏感數據存儲
- docker secret
-
- # 服務棧,棧的形式,一般作爲編排使用,格式與docker compose相同。
-
docker stack
- # 通過.yml文件指令部署
- - docker stack deploy -c 文件名.yml 編排服務名
- # 查看編排服務
- - docker stack ls
-
docker stack 不支持使用參數
- # 作爲集羣的管理
-
docker swarm
- # 初始化一個swarm
- - docker swarm init
- # 指定初始化ip地址節點
- - docker swarm init --advertise-addr 管理端IP地址
- # 去除本地之外的所有管理器身份
- - docker swarm init --force-new-cluster
- # 將節點加入swarm集羣,兩種加入模式manager與worker
- - docker swarm join
- # 工作節點加入管理節點需要通過join-token認證
- - docker swarm join-token
- # 重新獲取docker獲取初始化命令
- - docker swarm join-token worker
- # 離開swarm
- - docker swarm leave
- # 對swarm集羣更新配置
- - docker swarm update
-
- # 服務管理
-
docker service
- # 創建一個服務
- - docker service create
- # 創建的副本數
- - docker service create --replicas 副本數
- # 指定容器名稱
- - docker service create --name 名字
- # 每次容器與容器之間的更新時間間隔。
- - docker service create --update-delay s秒
- # 更新時同時並行更新數量,默認1
- - docker service create --update-parallelism 個數
- # 任務容器更新失敗時的模式,(“pause”停止|”continue“繼續),默認pause。
- - docker service create --update-failure-action 類型
- # 每次容器與容器之間的回滾時間間隔。
- - docker service create --rollback-monitor 20s
- # 回滾故障率如果小於百分比允許運行
- - docker service create --rollback-max-failure-ratio .數值(列“.2”爲%20)
- # 添加網絡
- - docker service create --network 網絡名
- # 創建volume類型數據卷
- - docker service create --mount type=volume,src=volume名稱,dst=容器目錄
- # 創建bind讀寫目錄掛載
- - docker service create --mount type=bind,src=宿主目錄,dst=容器目錄
- # 創建bind只讀目錄掛載
- - docker service create --mount type=bind,src=宿主目錄,dst=容器目錄,readonly
- # 創建dnsrr負載均衡模式
- - docker service create --endpoint-mode dnsrr 服務名
- # 創建docker配置文件到容器本地目錄
- - docker service create --config source=docker配置文件,target=配置文件路徑
- # 創建添加端口
- - docker service create --publish 暴露端口:容器端口 服務名
- # 查看服務詳細信息,默認json格式
- - docker service inspect
- # 查看服務信息平鋪形式
- - docker service inspect --pretty 服務名
- # 查看服務內輸出
- - docker service logs
- # 列出服務
- - docker service ls
- # 列出服務任務信息
- - docker service ps
- # 查看服務啓動信息
- - docker service ps 服務名
- # 過濾只運行的任務信息
- - docker service ps -f "desired-state=running" 服務名
- # 刪除服務
- - docker service rm
- # 縮容擴容服務
- - docker service scale
- # 擴展服務容器副本數量
- - docker service scale 服務名=副本數
- # 更新服務相關配置
- - docker service update
- # 容器加入指令
- - docker service update --args “指令” 服務名
- # 更新服務容器版本
- - docker service update --image 更新版本 服務名
- # 回滾服務容器版本
- - docker service update --rollback 回滾服務名
- # 添加容器網絡
- - docker service update --network-add 網絡名 服務名
- # 刪除容器網絡
- - docker service update --network-rm 網絡名 服務名
- # 服務添加暴露端口
- - docker service update --publish-add 暴露端口:容器端口 服務名
- # 移除暴露端口
- - docker service update --publish-rm 暴露端口:容器端口 服務名
- # 修改負載均衡模式爲dnsrr
- - docker service update --endpoint-mode dnsrr 服務名
- # 添加新的配置文件到容器內
- - docker service update --config-add 配置文件名稱,target=/../容器內配置文件名 服務名
- # 刪除配置文件
- - docker service update --config-rm 配置文件名稱 服務名
- # 強制重啓服務
- - docker service update --force 服務名
-
#簡單來說就是給每一個node打標籤。
-
docker node update --label-add func=nginx worker1
-
#master給worker1的docker打上了功能是nginx的標籤。func和nginx是你可以自己定的鍵值對。
-
#然後在運行docker service create 的時候,指定–constraint參數即可,這樣nginx的容器就會在worker1上啓動,而不會在其他node上啓動了。
-
docker service create --name my_nginx --constraint 'node.labels.func == nginx' nginx
-