简介
在本实验中,你将学习如何使用 docker info
命令检查 Docker Desktop 的安装状态。我们将探索两种不同的输出格式:默认的人类可读格式和适合脚本编写与自动化的 JSON 格式。
通过动手实践,你将执行 docker info
命令来获取 Docker 环境的详细信息,包括容器和镜像数量、服务器版本、存储驱动以及其他系统配置。你将了解默认格式如何提供快速概览,以及 JSON 格式如何更便于对 Docker 状态信息进行编程处理。
💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版
在本实验中,你将学习如何使用 docker info
命令检查 Docker Desktop 的安装状态。我们将探索两种不同的输出格式:默认的人类可读格式和适合脚本编写与自动化的 JSON 格式。
通过动手实践,你将执行 docker info
命令来获取 Docker 环境的详细信息,包括容器和镜像数量、服务器版本、存储驱动以及其他系统配置。你将了解默认格式如何提供快速概览,以及 JSON 格式如何更便于对 Docker 状态信息进行编程处理。
在本步骤中,我们将学习如何使用 docker info
命令的默认输出格式来检查 Docker 守护进程的状态。docker info
命令提供了 Docker 安装的详细信息,包括容器数量、镜像数量、存储驱动以及其他系统级信息。
首先,在你的 LabEx 虚拟机环境中打开终端。你可以通过点击任务栏中的终端图标或按下 Ctrl + Alt + T
快捷键来实现。
现在,执行以下命令以默认格式显示 Docker 信息:
docker info
该命令将输出大量关于你 Docker 环境的信息。滚动查看输出内容,你会看到诸如 Docker 版本、运行中和已停止的容器数量、镜像数量、正在使用的存储驱动以及各种系统配置等详细信息。
例如,你应该能在输出中看到类似以下内容:
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 20.10.21
Storage Driver: overlay2
...
这种默认格式非常适合快速了解 Docker 守护进程的状态和配置。
在上一步中,我们使用 docker info
的默认输出格式检查了 Docker 守护进程状态。虽然默认格式对人类阅读很友好,但并不适合程序化处理。本步骤将学习如何获取 JSON 格式的 Docker 信息,这种格式更适合脚本编写和自动化任务。
要获取 JSON 格式的输出,我们可以使用 docker info
命令的 --format
标志,并指定格式为 json
。
在终端中执行以下命令:
docker info --format '{{json .}}'
让我们分解这个命令:
docker info
:获取 Docker 系统信息的基础命令--format '{{json .}}'
:该标志指示 Docker 格式化输出。值 '{{json .}}'
使用 Go 模板语法。.
表示 docker info
返回的整个数据结构,{{json .}}
将这个结构格式化为 JSON 字符串执行命令后,你将看到与之前相同的信息,但这次会以单个有效的 JSON 对象形式呈现。输出内容类似如下(具体内容会根据你的 Docker 环境有所不同):
{
"ID": "...",
"Containers": 0,
"ContainersRunning": 0,
"ContainersPaused": 0,
"ContainersStopped": 0,
"Images": 0,
"Driver": "overlay2",
"SystemStatus": null,
"Plugins": {
"Volume": ["local"],
"Network": ["bridge", "host", "ipvlan", "macvlan", "null", "overlay"],
"Authorization": null,
"Log": [
"awslogs",
"fluentd",
"gcplogs",
"gelf",
"journald",
"json-file",
"local",
"logentries",
"splunk",
"syslog"
]
},
"MemoryLimit": true,
"SwapLimit": true,
"KernelMemory": true,
"CpuCfsPeriod": true,
"CpuCfsQuota": true,
"CpuShares": true,
"CpuSet": true,
"PidsLimit": true,
"OomKillDisable": true,
"IPv4Forwarding": true,
"BridgeNfIptables": true,
"BridgeNfIp6tables": true,
"Debug": false,
"NFd": -1,
"OomScoreAdj": -1,
"Goroutines": -1,
"SystemTime": "...",
"LoggingDriver": "json-file",
"CgroupDriver": "cgroupfs",
"CgroupVersion": "1",
"NEventsListener": -1,
"KernelVersion": "...",
"OperatingSystem": "...",
"OSType": "linux",
"Architecture": "x86_64",
"IndexServerAddress": "https://index.docker.io/v1/",
"RegistryConfig": {
"AllowNondistributableArtifactsAfterDate": "2020-12-25T00:00:00Z",
"InsecureRegistryCIDRs": ["127.0.0.0/8"],
"IndexConfigs": {
"docker.io": {
"Name": "docker.io",
"Mirrors": [],
"Secure": true,
"Official": true
}
},
"Mirrors": []
},
"NCPU": -1,
"MemTotal": -1,
"GenericResources": null,
"DockerRootDir": "/var/lib/docker",
"HttpProxy": "",
"HttpsProxy": "",
"NoProxy": "",
"ExperimentalBuild": false,
"LiveRestoreEnabled": false,
"Runtimes": { "runc": { "path": "runc" } },
"DefaultRuntime": "runc",
"Swarm": {
"NodeID": "",
"LocalNodeState": "inactive",
"ControlAvailable": false,
"Error": "",
"RemoteManagers": null
},
"ContainerdCommit": { "ID": "...", "Expected": "..." },
"RuncCommit": { "ID": "...", "Expected": "..." },
"InitCommit": { "ID": "...", "Expected": "..." },
"SecurityOptions": ["apparmor", "seccomp"],
"ProductLicense": "",
"DefaultAddressPools": null,
"Warnings": null
}
这种 JSON 输出可以被脚本语言或其他工具轻松解析,对于自动化 Docker 相关任务非常有用。
在本实验中,我们学习了如何使用 docker info
命令检查 Docker 守护进程的状态。我们探索了两种不同的输出格式:默认的人类可读格式和 JSON 格式。
我们首先使用 docker info
快速查看 Docker 环境的概况,包括容器和镜像数量、服务器版本以及存储驱动。然后,我们学习了如何结合 --format '{{json .}}'
标志使用 docker info
命令,以结构化的 JSON 格式获取相同的信息,这种格式更适合脚本编写和自动化任务。