docker 版本

描述显示 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 的方式和 正在使用哪些组件。以下示例显示了 macOS 上的输出 运行 Docker Desktop 的计算机:

$ 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运行旧版本的 Docker 引擎 在 Linux 服务器上:

$ 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 CLI 和 Docker Engine 进行 API 版本协商,并选择最高 API Docker CLI 和 Docker Engine 都支持的版本。

例如,如果 CLI 与 Docker 引擎版本 19.03 连接,则会降级 到 API 版本 1.40(请参阅 API 版本矩阵以了解 Docker Engine 支持的 API 版本):

$ docker version --format '{{.Client.APIVersion}}'

1.40

请注意,API 版本也可以使用DOCKER_API_VERSION环境变量(可用于调试目的)和 disables API 版本协商。以下示例说明了一个环境,其中 这DOCKER_API_VERSION环境变量。取消设置环境 variable 删除覆盖,并重新启用 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.com/go/formatting/

例子

设置输出格式 (--format)

格式化选项 (--format) pretty-print使用 Go 模板打印输出, 它允许您自定义输出格式或获取特定信息 从输出中。有关格式的详细信息,请参阅 format 命令和日志输出页面。

获取服务器版本

$ docker version --format '{{.Server.Version}}'

23.0.3

获取客户端 API 版本

以下示例打印客户端使用的 API 版本:

$ docker version --format '{{.Client.APIVersion}}'

1.42

显示的版本是客户端之间协商的 API 版本 和 Docker 引擎。有关更多信息,请参阅上面的 API 版本和版本协商

转储原始 JSON 数据

$ docker version --format '{{json .}}'

{"Client":"Version":"23.0.3","ApiVersion":"1.42", ...}