Введение
В этой лабораторной работе вы научитесь проверять статус установки Docker Desktop с помощью команды docker info. Мы рассмотрим два различных формата вывода: стандартный удобочитаемый формат и JSON-формат, который идеально подходит для скриптов и автоматизации.
В ходе практических шагов вы выполните команду docker info для получения детальной информации о вашем Docker-окружении, включая количество контейнеров и образов, версию сервера, драйвер хранилища и другие системные конфигурации. Вы увидите, как стандартный формат предоставляет краткий обзор, а JSON-формат позволяет проще обрабатывать информацию о статусе Docker программным способом.
Проверка статуса Docker Desktop в стандартном формате
На этом шаге мы научимся проверять статус Docker-демона с помощью команды docker info в стандартном формате вывода. Команда docker info предоставляет детальную информацию об установке Docker, включая количество контейнеров, образов, драйвер хранилища и другие системные данные.
Сначала откройте терминал в вашей среде LabEx VM. Это можно сделать, нажав на иконку терминала в панели задач или используя комбинацию клавиш 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 Desktop в формате JSON
На предыдущем шаге мы проверили статус Docker-демона, используя стандартный формат вывода команды docker info. Хотя стандартный формат удобен для чтения человеком, он не идеален для программной обработки. На этом шаге мы научимся получать информацию о Docker в JSON-формате, который гораздо лучше подходит для скриптов и автоматизации.
Для получения вывода в JSON-формате мы можем использовать флаг --format с командой docker info и указать формат как 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-демона с помощью команды docker info. Мы рассмотрели два различных формата вывода: стандартный удобочитаемый формат и JSON-формат.
Сначала мы использовали docker info для быстрого просмотра окружения Docker, включая количество контейнеров и образов, версию сервера и драйвер хранилища. Затем мы научились применять флаг --format '{{json .}}' с командой docker info для получения той же информации в структурированном JSON-формате, который лучше подходит для скриптов и автоматизации.



