如何使用 docker desktop status 命令检查 Docker Desktop 状态

DockerDockerBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,你将学习如何使用 docker info 命令检查 Docker Desktop 的安装状态。我们将探索两种不同的输出格式:默认的人类可读格式和适合脚本编写与自动化的 JSON 格式。

通过动手实践,你将执行 docker info 命令来获取 Docker 环境的详细信息,包括容器和镜像数量、服务器版本、存储驱动以及其他系统配置。你将了解默认格式如何提供快速概览,以及 JSON 格式如何更便于对 Docker 状态信息进行编程处理。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker/SystemManagementGroup -.-> docker/info("Display System-Wide Information") subgraph Lab Skills docker/info -.-> lab-555149{{"如何使用 docker desktop status 命令检查 Docker Desktop 状态"}} end

使用默认格式检查 Docker Desktop 状态

在本步骤中,我们将学习如何使用 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 守护进程的状态和配置。

使用 JSON 格式检查 Docker Desktop 状态

在上一步中,我们使用 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 格式获取相同的信息,这种格式更适合脚本编写和自动化任务。