Docker Swarm 是 Docker 官方提供的容器編排工具,用于管理和調度多個 Docker 容器。它允許用戶將多個 Docker 主機組成一個集群,并在集群中部署和管理容器化應用。Docker Swarm 提供了一系列命令來幫助用戶管理集群、服務、節點等資源。本文將詳細介紹 Docker Swarm 的常用命令,并解釋每個命令的用途和用法。
在使用 Docker Swarm 之前,首先需要初始化一個 Swarm 集群。初始化集群的命令如下:
docker swarm init --advertise-addr <MANAGER-IP>
--advertise-addr
:指定管理節點的 IP 地址,其他節點將通過該地址加入集群。初始化成功后,Docker 會生成一個加入集群的命令,其他節點可以通過該命令加入集群。
要將其他節點加入 Swarm 集群,可以使用以下命令:
docker swarm join --token <TOKEN> <MANAGER-IP>:<PORT>
--token
:指定加入集群的令牌。令牌分為管理節點和工作節點兩種,分別用于加入管理節點和工作節點。<MANAGER-IP>:<PORT>
:指定管理節點的 IP 地址和端口。要查看 Swarm 集群的詳細信息,可以使用以下命令:
docker info
該命令會顯示當前 Docker 的詳細信息,包括 Swarm 集群的狀態、節點數量、管理節點和工作節點的信息等。
要查看 Swarm 集群中的節點信息,可以使用以下命令:
docker node ls
該命令會列出集群中的所有節點,并顯示每個節點的 ID、主機名、狀態、角色(管理節點或工作節點)等信息。
在 Swarm 集群中,可以將工作節點提升為管理節點。提升節點的命令如下:
docker node promote <NODE-ID>
<NODE-ID>
:指定要提升的節點的 ID。如果不再需要某個管理節點,可以將其降級為工作節點。降級節點的命令如下:
docker node demote <NODE-ID>
<NODE-ID>
:指定要降級的節點的 ID。要從 Swarm 集群中移除一個節點,可以使用以下命令:
docker node rm <NODE-ID>
<NODE-ID>
:指定要移除的節點的 ID。在 Swarm 集群中,服務是部署和管理容器化應用的基本單位。要創建一個服務,可以使用以下命令:
docker service create --name <SERVICE-NAME> --replicas <REPLICAS> <IMAGE>
--name
:指定服務的名稱。--replicas
:指定服務的副本數量。<IMAGE>
:指定要使用的 Docker 鏡像。例如,創建一個名為 web
的服務,使用 nginx
鏡像,并啟動 3 個副本:
docker service create --name web --replicas 3 nginx
要查看 Swarm 集群中的所有服務,可以使用以下命令:
docker service ls
該命令會列出所有服務的名稱、模式、副本數量、鏡像等信息。
要查看某個服務的詳細信息,可以使用以下命令:
docker service inspect <SERVICE-NAME>
<SERVICE-NAME>
:指定要查看的服務名稱。該命令會顯示服務的詳細配置信息,包括副本數量、網絡配置、掛載卷等。
要擴展某個服務的副本數量,可以使用以下命令:
docker service scale <SERVICE-NAME>=<REPLICAS>
<SERVICE-NAME>
:指定要擴展的服務名稱。<REPLICAS>
:指定新的副本數量。例如,將 web
服務的副本數量擴展到 5 個:
docker service scale web=5
要更新某個服務的配置(如鏡像版本、環境變量等),可以使用以下命令:
docker service update --image <NEW-IMAGE> <SERVICE-NAME>
--image
:指定新的鏡像。<SERVICE-NAME>
:指定要更新的服務名稱。例如,將 web
服務的鏡像更新為 nginx:latest
:
docker service update --image nginx:latest web
要刪除某個服務,可以使用以下命令:
docker service rm <SERVICE-NAME>
<SERVICE-NAME>
:指定要刪除的服務名稱。例如,刪除 web
服務:
docker service rm web
要查看某個服務的日志,可以使用以下命令:
docker service logs <SERVICE-NAME>
<SERVICE-NAME>
:指定要查看日志的服務名稱。該命令會顯示服務的日志輸出,幫助用戶排查問題。
在 Swarm 集群中,每個服務副本對應一個任務。要查看某個服務的任務列表,可以使用以下命令:
docker service ps <SERVICE-NAME>
<SERVICE-NAME>
:指定要查看任務的服務名稱。該命令會列出服務的所有任務,并顯示每個任務的 ID、狀態、節點等信息。
在 Swarm 集群中,網絡用于連接不同的服務。要創建一個網絡,可以使用以下命令:
docker network create --driver overlay <NETWORK-NAME>
--driver overlay
:指定網絡驅動為 overlay
,這是 Swarm 集群中常用的網絡驅動。<NETWORK-NAME>
:指定網絡的名稱。例如,創建一個名為 my-network
的網絡:
docker network create --driver overlay my-network
要查看 Swarm 集群中的所有網絡,可以使用以下命令:
docker network ls
該命令會列出所有網絡的名稱、驅動、作用域等信息。
要刪除某個網絡,可以使用以下命令:
docker network rm <NETWORK-NAME>
<NETWORK-NAME>
:指定要刪除的網絡名稱。例如,刪除 my-network
網絡:
docker network rm my-network
在 Swarm 集群中,配置(Config)用于存儲敏感數據或配置文件。要創建一個配置,可以使用以下命令:
docker config create <CONFIG-NAME> <FILE>
<CONFIG-NAME>
:指定配置的名稱。<FILE>
:指定配置文件的路徑。例如,創建一個名為 my-config
的配置,使用 config.txt
文件:
docker config create my-config config.txt
要查看 Swarm 集群中的所有配置,可以使用以下命令:
docker config ls
該命令會列出所有配置的名稱、創建時間等信息。
要刪除某個配置,可以使用以下命令:
docker config rm <CONFIG-NAME>
<CONFIG-NAME>
:指定要刪除的配置名稱。例如,刪除 my-config
配置:
docker config rm my-config
在 Swarm 集群中,密鑰(Secret)用于存儲敏感數據,如密碼、證書等。要創建一個密鑰,可以使用以下命令:
docker secret create <SECRET-NAME> <FILE>
<SECRET-NAME>
:指定密鑰的名稱。<FILE>
:指定密鑰文件的路徑。例如,創建一個名為 my-secret
的密鑰,使用 secret.txt
文件:
docker secret create my-secret secret.txt
要查看 Swarm 集群中的所有密鑰,可以使用以下命令:
docker secret ls
該命令會列出所有密鑰的名稱、創建時間等信息。
要刪除某個密鑰,可以使用以下命令:
docker secret rm <SECRET-NAME>
<SECRET-NAME>
:指定要刪除的密鑰名稱。例如,刪除 my-secret
密鑰:
docker secret rm my-secret
如果某個節點不再需要參與 Swarm 集群,可以將其從集群中移除。離開集群的命令如下:
docker swarm leave
如果該節點是管理節點,可以使用 --force
參數強制離開:
docker swarm leave --force
要銷毀整個 Swarm 集群,可以在管理節點上執行以下命令:
docker swarm leave --force
該命令會強制管理節點離開集群,并銷毀集群中的所有服務和配置。
要查看 Swarm 集群的加入令牌,可以使用以下命令:
docker swarm join-token worker
該命令會顯示工作節點的加入令牌。如果要查看管理節點的加入令牌,可以使用以下命令:
docker swarm join-token manager
要更新 Swarm 集群的配置(如自動鎖定、證書輪換等),可以使用以下命令:
docker swarm update --autolock=true
--autolock
:啟用或禁用 Swarm 集群的自動鎖定功能。要查看 Swarm 集群的自動鎖定狀態,可以使用以下命令:
docker swarm unlock-key
該命令會顯示當前的解鎖密鑰,用于解鎖自動鎖定的 Swarm 集群。
如果 Swarm 集群被自動鎖定,可以使用以下命令解鎖:
docker swarm unlock
該命令會提示輸入解鎖密鑰,輸入正確的密鑰后,集群將被解鎖。
要查看 Swarm 集群的 CA 證書,可以使用以下命令:
docker swarm ca
該命令會顯示 Swarm 集群的 CA 證書信息。
要輪換 Swarm 集群的 CA 證書,可以使用以下命令:
docker swarm ca --rotate
該命令會生成一個新的 CA 證書,并輪換集群中的所有節點證書。
要查看 Swarm 集群中某個節點的證書,可以使用以下命令:
docker node inspect <NODE-ID> --format '{{ .TLSStatus.Certificate }}'
<NODE-ID>
:指定要查看證書的節點 ID。該命令會顯示指定節點的證書信息。
要查看 Swarm 集群中某個節點的狀態,可以使用以下命令:
docker node inspect <NODE-ID> --format '{{ .Status.State }}'
<NODE-ID>
:指定要查看狀態的節點 ID。該命令會顯示指定節點的狀態信息。
要查看 Swarm 集群中某個節點的角色(管理節點或工作節點),可以使用以下命令:
docker node inspect <NODE-ID> --format '{{ .Spec.Role }}'
<NODE-ID>
:指定要查看角色的節點 ID。該命令會顯示指定節點的角色信息。
要查看 Swarm 集群中某個節點的標簽,可以使用以下命令:
docker node inspect <NODE-ID> --format '{{ .Spec.Labels }}'
<NODE-ID>
:指定要查看標簽的節點 ID。該命令會顯示指定節點的標簽信息。
要為 Swarm 集群中的某個節點添加標簽,可以使用以下命令:
docker node update --label-add <KEY>=<VALUE> <NODE-ID>
--label-add
:指定要添加的標簽鍵值對。<NODE-ID>
:指定要添加標簽的節點 ID。例如,為節點 node1
添加標簽 env=prod
:
docker node update --label-add env=prod node1
要刪除 Swarm 集群中某個節點的標簽,可以使用以下命令:
docker node update --label-rm <KEY> <NODE-ID>
--label-rm
:指定要刪除的標簽鍵。<NODE-ID>
:指定要刪除標簽的節點 ID。例如,刪除節點 node1
的標簽 env
:
docker node update --label-rm env node1
要查看 Swarm 集群中某個節點的資源使用情況(如 CPU、內存等),可以使用以下命令:
docker node inspect <NODE-ID> --format '{{ .Description.Resources }}'
<NODE-ID>
:指定要查看資源的節點 ID。該命令會顯示指定節點的資源使用情況。
要查看 Swarm 集群中某個節點的插件信息,可以使用以下命令:
docker node inspect <NODE-ID> --format '{{ .Description.Plugins }}'
<NODE-ID>
:指定要查看插件的節點 ID。該命令會顯示指定節點的插件信息。
要查看 Swarm 集群中某個節點的 Docker 引擎版本,可以使用以下命令:
docker node inspect <NODE-ID> --format '{{ .Description.Engine.EngineVersion }}'
<NODE-ID>
:指定要查看引擎版本的節點 ID。該命令會顯示指定節點的 Docker 引擎版本。
要查看 Swarm 集群中某個節點的操作系統信息,可以使用以下命令:
docker node inspect <NODE-ID> --format '{{ .Description.Platform.OS }}'
<NODE-ID>
:指定要查看操作系統的節點 ID。該命令會顯示指定節點的操作系統信息。
要查看 Swarm 集群中某個節點的架構信息,可以使用以下命令:
docker node inspect <NODE-ID> --format '{{ .Description.Platform.Architecture }}'
<NODE-ID>
:指定要查看架構的節點 ID。該命令會顯示指定節點的架構信息。
要查看 Swarm 集群中某個節點的主機名,可以使用以下命令:
docker node inspect <NODE-ID> --format '{{ .Description.Hostname }}'
<NODE-ID>
:指定要查看主機名的節點 ID。該命令會顯示指定節點的主機名。
要查看 Swarm 集群中某個節點的 IP 地址,可以使用以下命令:
docker node inspect <NODE-ID> --format '{{ .Status.Addr }}'
<NODE-ID>
:指定要查看 IP 地址的節點 ID。該命令會顯示指定節點的 IP 地址。
要查看 Swarm 集群中某個節點的狀態,可以使用以下命令:
docker node inspect <NODE-ID> --format '{{ .Status.State }}'
<NODE-ID>
:指定要查看狀態的節點 ID。該命令會顯示指定節點的狀態信息。
要查看 Swarm 集群中某個節點的角色(管理節點或工作節點),可以使用以下命令:
docker node inspect <NODE-ID> --format '{{ .Spec.Role }}'
<NODE-ID>
:指定要查看角色的節點 ID。該命令會顯示指定節點的角色信息。
要查看 Swarm 集群中某個節點的標簽,可以使用以下命令:
docker node inspect <NODE-ID> --format '{{ .Spec.Labels }}'
<NODE-ID>
:指定要查看標簽的節點 ID。該命令會顯示指定節點的標簽信息。
要為 Swarm 集群中的某個節點添加標簽,可以使用以下命令:
docker node update --label-add <KEY>=<VALUE> <NODE-ID>
--label-add
:指定要添加的標簽鍵值對。<NODE-ID>
:指定要添加標簽的節點 ID。例如,為節點 node1
添加標簽 env=prod
:
docker node update --label-add env=prod node1
要刪除 Swarm 集群中某個節點的標簽,可以使用以下命令:
docker node update --label-rm <KEY> <NODE-ID>
--label-rm
:指定要刪除的標簽鍵。<NODE-ID>
:指定要刪除標簽的節點 ID。例如,刪除節點 node1
的標簽 env
:
docker node update --label-rm env node1
要查看 Swarm 集群中某個節點的資源使用情況(如 CPU、內存等),可以使用以下命令:
docker node inspect <NODE-ID> --format '{{ .Description.Resources }}'
<NODE-ID>
:指定要查看資源的節點 ID。該命令會顯示指定節點的資源使用情況。
要查看 Swarm 集群中某個節點的插件信息,可以使用以下命令:
docker node inspect <NODE-ID> --format '{{ .Description.Plugins }}'
<NODE-ID>
:指定要查看插件的節點 ID。該命令會顯示指定節點的插件信息。
要查看 Swarm 集群中某個節點的 Docker 引擎版本,可以使用以下命令:
docker node inspect <NODE-ID> --format '{{ .Description.Engine.EngineVersion }}'
-
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。