docker version

說明顯示 Docker 版本資訊
用法docker version [選項]

說明

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

請注意,也可以使用 DOCKER_API_VERSION 環境變數覆蓋 API 版本,這對於除錯目的很有用,並且會停用 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://docker-docs.dev.org.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", ...}