docker version
描述 | 顯示 Docker 版本資訊 |
---|---|
用法 | docker version [OPTIONS] |
描述
version 命令列印所有獨立版本化 Docker 元件的當前版本號。使用 --format
選項可自定義輸出。
version 命令 (docker version
) 輸出 Docker 元件的版本號,而 --version
標誌 (docker --version
) 輸出您正在使用的 Docker CLI 的版本號。
預設輸出
預設輸出將所有版本資訊分為兩個部分;Client
部分包含有關 Docker CLI 和客戶端元件的資訊,而 Server
部分包含有關 Docker Engine 和 Docker Engine 使用的元件(例如 containerd 和 runc OCI 執行時)的資訊。
顯示的資訊可能因您安裝 Docker 的方式和正在使用的元件而異。以下示例顯示了在執行 Docker Desktop 的 macOS 機器上的輸出
$ docker version
Client: Docker Engine - Community
Version: 23.0.3
API version: 1.42
Go version: go1.19.7
Git commit: 3e7cbfd
Built: Tue Apr 4 22:05:41 2023
OS/Arch: darwin/amd64
Context: default
Server: Docker Desktop 4.19.0 (12345)
Engine:
Version: 23.0.3
API version: 1.42 (minimum version 1.12)
Go version: go1.19.7
Git commit: 59118bf
Built: Tue Apr 4 22:05:41 2023
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.20
GitCommit: 2806fc1057397dbaeefbea0e4e17bddfbd388f38
runc:
Version: 1.1.5
GitCommit: v1.1.5-0-gf19387a
docker-init:
Version: 0.19.0
GitCommit: de40ad0
客戶端和伺服器版本
Docker 採用客戶端/伺服器架構,允許您在本地機器上使用 Docker CLI 控制在遠端機器上執行的 Docker Engine,遠端機器可以是(例如)在雲中或虛擬機器內部執行的機器。
以下示例將 Docker CLI 切換為使用名為 remote-test-server
的上下文,該上下文在 Linux 伺服器上執行舊版本的 Docker Engine
$ docker context use remote-test-server
remote-test-server
$ docker version
Client: Docker Engine - Community
Version: 23.0.3
API version: 1.40 (downgraded from 1.42)
Go version: go1.19.7
Git commit: 3e7cbfd
Built: Tue Apr 4 22:05:41 2023
OS/Arch: darwin/amd64
Context: remote-test-server
Server: Docker Engine - Community
Engine:
Version: 19.03.8
API version: 1.40 (minimum version 1.12)
Go version: go1.12.17
Git commit: afacb8b
Built: Wed Mar 11 01:29:16 2020
OS/Arch: linux/amd64
containerd:
Version: v1.2.13
GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429
runc:
Version: 1.0.0-rc10
GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd
docker-init:
Version: 0.18.0
GitCommit: fec3683
API 版本和版本協商
客戶端使用的 API 版本取決於 Docker CLI 連線的 Docker Engine。當連線到 Docker Engine 時,Docker CLI 和 Docker Engine 執行 API 版本協商,並選擇 Docker CLI 和 Docker Engine 都支援的最高 API 版本。
例如,如果 CLI 連線到 Docker Engine 版本 19.03,它會降級到 API 版本 1.40(請參閱 API 版本矩陣以瞭解 Docker Engine 支援的 API 版本)
$ docker version --format '{{.Client.APIVersion}}'
1.40
請注意,API 版本也可以使用 DOCKER_API_VERSION
環境變數覆蓋,這對於除錯目的很有用,並且會停用 API 版本協商。以下示例說明了設定了 DOCKER_API_VERSION
環境變數的環境。取消設定環境變數會刪除覆蓋,並重新啟用 API 版本協商
$ env | grep DOCKER_API_VERSION
DOCKER_API_VERSION=1.39
$ docker version --format '{{.Client.APIVersion}}'
1.39
$ unset DOCKER_API_VERSION
$ docker version --format '{{.Client.APIVersion}}'
1.42
選項
選項 | 預設值 | 描述 |
---|---|---|
-f, --format | 使用自定義模板格式化輸出 'json': 以 JSON 格式列印 'TEMPLATE': 使用給定的 Go 模板列印輸出。 有關使用模板格式化輸出的更多資訊,請參閱https://docs.docker.net.tw/go/formatting/ |
示例
格式化輸出 (--format)
格式化選項 (--format
) 使用 Go 模板漂亮地列印輸出,這允許您自定義輸出格式,或從輸出中獲取特定資訊。有關格式的詳細資訊,請參閱格式化命令和日誌輸出頁面。
獲取伺服器版本
$ docker version --format '{{.Server.Version}}'
23.0.3
獲取客戶端 API 版本
以下示例列印客戶端使用的 API 版本
$ docker version --format '{{.Client.APIVersion}}'
1.42
顯示的版本是客戶端和 Docker Engine 之間協商的 API 版本。有關更多資訊,請參閱上方的API 版本和版本協商。
轉儲原始 JSON 資料
$ docker version --format '{{json .}}'
{"Client":"Version":"23.0.3","ApiVersion":"1.42", ...}