Как использовать команду docker system info для отображения системной информации

DockerDockerBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы научитесь использовать команду docker info для отображения полной информации о вашей системе Docker. Вы начнете с выполнения базовой команды docker info для просмотра деталей о Docker-демоне, включая количество контейнеров и образов, драйвер хранения и другую системную информацию.

После базового отображения вы узнаете, как форматировать вывод команды docker info различными способами. В частности, вы научитесь форматировать вывод в формате 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-555249{{"Как использовать команду docker system info для отображения системной информации"}} end

Отображение базовой информации о системе Docker

На этом этапе вы научитесь отображать базовую информацию о вашей системе Docker с помощью команды docker info. Эта команда предоставляет детали о Docker-демоне, включая количество контейнеров и образов, драйвер хранения и другую системную информацию.

Откройте терминал в среде LabEx. Вы можете напрямую выполнить команду docker info.

docker info

Вы должны увидеть вывод, похожий на следующий (точные детали могут отличаться в зависимости от вашей среды):

Client:
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version: v0.10.4
    Build: 8842a472b58241d32996951f172f32259cd758e5
  compose: Docker Compose (Docker Inc.)
    Version: v2.17.2
    Build: 6833407
  scan: Docker Scan (Docker Inc.)
    Version: v0.23.0
    Build: 2c50987

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 20.10.21
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: systemd
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 9ba4b2555a59f71c4c1c1897e93a540b0c52b883
 runc version: v1.1.4-0-g5fd4c4d
 init version: de40ad0
 Security Options:
  apparmor
  seccomp
   Profile: default
  cgroupns
 Kernel Version: 5.15.0-76-generic
 Operating System: Ubuntu 22.04.2 LTS
 OSType: linux
 Architecture: x86_64
 CPUs: 2
 Total Memory: 3.84GiB
 Name: labex-vm
 ID: 6111111111111111111111111111111111111111111111111111111111111111
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

WARNING: No blkio weight, cpus, or mem limits set, Docker may behave unexpectedly without them.

Вывод предоставляет полный обзор вашей установки Docker и ее текущего состояния. Вы можете увидеть информацию, такую как версия Docker, количество запущенных контейнеров и образов, используемый драйвер хранения, а также детали о базовой операционной системе и оборудовании.

Форматирование вывода команды docker info в формате JSON

На предыдущем этапе вы увидели стандартный вывод команды docker info. Этот вывод удобен для чтения человеком, но может быть сложно обработать программно. Docker предоставляет флаг --format для настройки формата вывода. На этом этапе вы научитесь форматировать вывод команды docker info в формате JSON.

Флаг --format использует пакет text/template языка Go. Чтобы вывести информацию в формате JSON, вы можете использовать шаблон . | json.

Выполните следующую команду в терминале:

docker info --format '{{json .}}'

Вы должны увидеть ту же информацию, что и раньше, но теперь отформатированную в виде одного JSON-объекта:

{
  "Client": {
    "Context": "default",
    "DebugMode": false,
    "Plugins": {
      "buildx": {
        "Version": "v0.10.4",
        "Build": "8842a472b58241d32996951f172f32259cd758e5"
      },
      "compose": {
        "Version": "v2.17.2",
        "Build": "6833407"
      },
      "scan": {
        "Version": "v0.23.0",
        "Build": "2c50987"
      }
    }
  },
  "Server": {
    "Containers": 0,
    "ContainersRunning": 0,
    "ContainersPaused": 0,
    "ContainersStopped": 0,
    "Images": 0,
    "ServerVersion": "20.10.21",
    "StorageDriver": "overlay2",
    "LoggingDriver": "json-file",
    "CgroupDriver": "systemd",
    "CgroupVersion": "2",
    "Plugins": {
      "Volume": ["local"],
      "Network": ["bridge", "host", "ipvlan", "macvlan", "null", "overlay"],
      "Log": [
        "awslogs",
        "fluentd",
        "gcplogs",
        "gelf",
        "journald",
        "json-file",
        "local",
        "logentries",
        "splunk",
        "syslog"
      ]
    },
    "Swarm": {
      "NodeID": "",
      "LocalNodeState": "inactive",
      "ControlAvailable": false,
      "Error": null,
      "RemoteManagers": null
    },
    "Runtimes": {
      "io.containerd.runc.v2": {
        "path": "io.containerd.runc.v2"
      },
      "io.containerd.runtime.v1.linux": {
        "path": "io.containerd.runtime.v1.linux"
      },
      "runc": {
        "path": "runc"
      }
    },
    "DefaultRuntime": "runc",
    "InitBinary": "docker-init",
    "ContainerdVersion": "9ba4b2555a59f71c4c1c1897e93a540b0c52b883",
    "RuncVersion": "v1.1.4-0-g5fd4c4d",
    "InitVersion": "de40ad0",
    "SecurityOptions": ["apparmor", "seccomp", "cgroupns"],
    "KernelVersion": "5.15.0-76-generic",
    "OperatingSystem": "Ubuntu 22.04.2 LTS",
    "OSType": "linux",
    "Architecture": "x86_64",
    "NCPU": 2,
    "MemTotal": 4123631616,
    "Name": "labex-vm",
    "ID": "6111111111111111111111111111111111111111111111111111111111111111",
    "DockerRootDir": "/var/lib/docker",
    "DebugMode": false,
    "ExperimentalBuild": false,
    "InsecureRegistries": ["127.0.0.0/8"],
    "LiveRestoreEnabled": false,
    "Warnings": [
      "No blkio weight, cpus, or mem limits set, Docker may behave unexpectedly without them."
    ]
  }
}

Форматирование вывода в формате JSON полезно, когда вы хотите обработать информацию с помощью других инструментов или скриптов.

Форматирование вывода команды docker info с использованием пользовательского шаблона

В дополнение к форматированию вывода в формате JSON, вы можете использовать флаг --format с пользовательским шаблоном на языке Go для отображения определенной информации из вывода команды docker info. Это позволяет извлекать только те данные, которые вас интересуют.

Команда docker info предоставляет структуру данных, к которой вы можете обращаться в шаблоне. Например, чтобы отобразить версию Docker-сервера и общее количество CPU, вы можете использовать шаблон 'Server Version: {{.ServerVersion}}, CPUs: {{.NCPU}}'.

Выполните следующую команду в терминале:

docker info --format 'Server Version: {{.ServerVersion}}, CPUs: {{.NCPU}}'

Вы должны увидеть вывод, похожий на следующий:

Server Version: 20.10.21, CPUs: 2

В этом шаблоне:

  • {{.ServerVersion}} обращается к полю ServerVersion в структуре данных вывода команды docker info.
  • {{.NCPU}} обращается к полю NCPU, которое представляет количество CPU.

Вы можете изучить JSON-вывод из предыдущего шага, чтобы определить другие поля, которые вы хотите включить в свой пользовательский шаблон. Например, чтобы отобразить операционную систему и корневую директорию Docker, вы можете использовать шаблон 'OS: {{.OperatingSystem}}, Docker Root Dir: {{.DockerRootDir}}'.

Попробуйте выполнить эту команду:

docker info --format 'OS: {{.OperatingSystem}}, Docker Root Dir: {{.DockerRootDir}}'

Вы должны увидеть вывод, похожий на следующий:

OS: Ubuntu 22.04.2 LTS, Docker Root Dir: /var/lib/docker

Использование пользовательских шаблонов позволяет вам детально контролировать вывод команды docker info, что упрощает интеграцию информации о Docker в скрипты или отчеты.

Резюме

В этом практическом занятии вы узнали, как использовать команду docker info для отображения полной информации о вашей системе Docker. Вы начали с выполнения базовой команды docker info для просмотра деталей о Docker-демоне, включая количество контейнеров и образов, драйвер хранения и другую системную информацию.

Кроме того, вы изучили, как форматировать вывод команды docker info. Вы научились выводить информацию в формате JSON для более простого разбора и интеграции с другими инструментами, а также как использовать пользовательский шаблон на языке Go для отображения определенной информации в настраиваемом формате. Эти варианты форматирования обеспечивают гибкость в доступе и использовании деталей системы Docker.