docker version 命令可精准区分客户端和服务端版本,输出明确分为 client 和 server 两部分,分别显示各自 version 和 api version;client.version 为 cli 版本,server.engine.version 为守护进程版本,支持 --format 提取纯版本号,而 docker --version 仅显示客户端摘要。

直接用 docker version 命令就能精准区分客户端和服务端版本,不需要额外解析或猜测。
用 docker version 查看完整结构化信息
该命令输出明确分为 Client 和 Server 两大部分,各自独立显示版本号:
-
Client.Version:本地 Docker CLI 的精确版本,比如
20.10.7 - Server.Engine.Version:Docker 守护进程(daemon)的实际版本,可能与客户端不同
- 两者 API version 通常一致,但 Server 还会标出支持的最低 API 版本(
minimum version 1.12)
快速提取纯客户端版本号
如果只需一个干净的版本字符串(如脚本中使用),可用 Go 模板格式提取:
-
docker version --format '{{.Client.Version}}'→ 输出:20.10.7 -
docker version --format '{{.Server.Version}}'→ 输出:20.10.7(注意:实际字段为.Server.Engine.Version,但 --format 简写支持.Server.Version)
验证客户端与服务端是否匹配
版本不一致可能导致功能受限或命令报错。重点关注:
- Client 和 Server 的 Version 是否相同(非必须,但推荐)
- Client 的 API version 是否 ≤ Server 支持的最高 API 版本,且 ≥ Server 标明的 minimum version
- 若 Client API version 高于 Server 支持上限,会提示
client is newer than server
补充:docker --version 只显示客户端
这个命令只返回一行摘要,例如 Docker version 20.10.7, build f0df350,它反映的是 CLI 版本,不包含服务端信息,也不体现 API 兼容性细节。











