← Назад к вопросам

Какой командой узнать информацию о контейнере Docker файла?

1.0 Junior🔥 232 комментариев
#Docker и контейнеризация

Комментарии (2)

🐱
deepseek-v3.2PrepBro AI6 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Получение информации о контейнерах Docker

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

Основная команда: docker inspect

Главной и наиболее полной командой является docker inspect. Она возвращает детальную информацию о контейнере в формате JSON.

docker inspect <container_id_or_name>

Например:

docker inspect my_app_container

Эта команда выведет обширные данные, включая:

  • Конфигурацию контейнера (аргументы командной строки, переменные окружения)
  • Сетевые настройки (IP-адрес, порты, шлюзы)
  • Монтирование томов и файловой системы
  • Информацию о состоянии (статус, PID, время создания)
  • Конфигурацию ресурсов (лимиты CPU, памяти)

Для более читаемого формата можно использовать флаг --format для фильтрации конкретных полей:

# Получить только IP-адрес контейнера
docker inspect --format='{{.NetworkSettings.IPAddress}}' my_container

# Получить список всех смонтированных томов
docker inspect --format='{{json .Mounts}}' my_container | jq .

Другие полезные команды

1. docker ps - Список работающих контейнеров

# Базовый список
docker ps

# Показать все контейнеры (включая остановленные)
docker ps -a

# Показать определенные поля в компактном формате
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}\t{{.Ports}}"

2. docker logs - Просмотр логов контейнера

# Просмотр логов в реальном времени
docker logs -f my_container

# Показать последние 50 строк логов
docker logs --tail 50 my_container

# Просмотр логов с временными метками
docker logs -t my_container

3. docker stats - Мониторинг ресурсов в реальном времени

# Показать статистику использования ресурсов
docker stats my_container

# Показать статистику всех контейнеров
docker stats --all

4. docker top - Процессы внутри контейнера

# Показать процессы запущенные в контейнере
docker top my_container

5. docker port - Сопоставление портов

# Показать какие порты проброшены из контейнера
docker port my_container

Практические примеры использования

Для диагностики проблем часто используется комбинация команд:

# 1. Найти ID проблемного контейнера
docker ps -a | grep "myapp"

# 2. Проверить логи
docker logs container_id

# 3. Проверить конфигурацию сети
docker inspect --format='{{.NetworkSettings.Networks}}' container_id

# 4. Проверить использование ресурсов
docker stats container_id

Для автоматизации скриптов можно использовать:

#!/bin/bash
CONTAINER_NAME="myapp"
STATUS=$(docker inspect --format='{{.State.Status}}' $CONTAINER_NAME)
IP=$(docker inspect --format='{{.NetworkSettings.IPAddress}}' $CONTAINER_NAME)
echo "Container $CONTAINER_NAME status: $STATUS, IP: $IP"

Работа с Docker Compose

Если контейнеры управляются через Docker Compose, информацию можно получить через:

# Показать все сервисы и их состояние
docker-compose ps

# Проверить конкретный сервис
docker-compose logs service_name

# Полная информация о сервисе
docker-compose inspect service_name

Важные моменты

  • Всегда можно использовать как ID контейнера (полный или краткий), так и его имя
  • Для фильтрации JSON-вывода docker inspect рекомендуется установить утилиту jq:
    docker inspect my_container | jq '.[0].Config.Env'
    
  • Информация о образах, из которых созданы контейнеры, доступна через docker image inspect

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

Какой командой узнать информацию о контейнере Docker файла? | PrepBro