1、docker version 简介
docker version
命令用于显示 Docker 引擎的版本信息。它提供了有关 Docker 引擎和客户端的详细信息,包括版本号、构建信息、API 版本等。
参考文档:https://docs.docker.com/engine/reference/commandline/version/
2、docker version 语法
docker version [OPTIONS]
版本命令(docker version)会打印所有独立版本的 Docker 组件的当前版本号。您可以使用 --format 选项来自定义输出格式。
版本命令(docker version)会输出 Docker 组件的版本号,而 --version 标志(docker --version)会输出您正在使用的 Docker CLI 的版本号。
1)默认输出
默认输出将所有版本信息分成两个部分;"Client" 部分包含有关 Docker CLI 和客户端组件的信息,"Server" 部分包含有关 Docker 引擎和引擎使用的组件(如 "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
2)客户端和服务器版本
Docker 使用客户端/服务器架构,允许您在本地机器上使用 Docker CLI 来控制远程机器上运行的 Docker 引擎,远程机器可以是云中运行的机器或虚拟机中的机器。
以下示例切换 Docker CLI 使用名为 "remote-test-server" 的上下文,该上下文在 Linux 服务器上运行旧版本的 Docker 引擎:
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
3)API 版本和版本协商
客户端使用的 API 版本取决于 Docker CLI 连接的 Docker 引擎。当与 Docker 引擎连接时,Docker CLI 和 Docker 引擎执行 API 版本协商,并选择 Docker CLI 和 Docker 引擎都支持的最高 API 版本。
例如,如果 CLI 正在连接到 Docker 19.03 引擎,则会降级到 API 版本 1.40(请参阅 API 版本矩阵以了解 Docker 引擎支持的 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
3、docker version 命令
1)格式化输出(--format)
格式化选项(--format)使用 Go 模板对输出进行漂亮打印,这使您可以自定义输出格式或从输出中获取特定信息。有关格式的详细信息,请参阅格式化命令和日志输出页面。
2)获取服务器版本
docker version --format '{{.Server.Version}}' 23.0.3
3)获取客户端 API 版本
以下示例打印客户端使用的 API 版本:
docker version --format '{{.Client.APIVersion}}' 1.42
显示的版本是客户端和 Docker 引擎之间协商的 API 版本。有关更多信息,请参阅上面的 API 版本和版本协商。
4)转储原始 JSON 数据
docker version --format '{{json .}}' {"Client":"Version":"23.0.3","ApiVersion":"1.42", ...}
4、命令选项
选项 | 默认值 | 描述 |
--format , -f | 使用自定义模板格式化输出: 'json':以 JSON 格式打印输出 'TEMPLATE':使用给定的 Go 模板打印输出。 有关使用模板格式化输出的更多信息, |