JavaRush /Курсы /Модуль 2: Fullstack /Проверка состояния контейнеров

Проверка состояния контейнеров

Модуль 2: Fullstack
12 уровень , 2 лекция
Открыта

3.1 Основы команды docker ps

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

По умолчанию команда docker ps выводит список только тех контейнеров, которые в данный момент запущены.

Синтаксис

Terminal

docker ps [OPTIONS]

Где:

  • OPTIONS: дополнительные параметры для фильтрации и форматирования вывода.

Пример базового использования

Terminal


docker ps 

Этот базовый вызов команды docker ps выведет список всех запущенных контейнеров. Вывод будет включать следующие поля:

  • CONTAINER ID: уникальный идентификатор контейнера.
  • IMAGE: образ, из которого был создан контейнер.
  • COMMAND: команда, выполняемая в контейнере.
  • CREATED: время, прошедшее с момента создания контейнера.
  • STATUS: текущее состояние контейнера (например, Up 5 minutes).
  • PORTS: перенаправленные порты.
  • NAMES: имя контейнера.

Список всех контейнеров

Для отображения всех контейнеров, включая остановленные, используйте опцию -a:

Terminal


docker ps -a 

Эта команда выведет список всех контейнеров, запущенных когда-либо, с указанием их текущего состояния (запущен, остановлен и т.д.).

3.2 Фильтрация вывода

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

1. Фильтрация по статусу

Например, чтобы отобразить только остановленные контейнеры:

Terminal


docker ps -f "status=exited" 

2. Фильтрация по имени

Чтобы отобразить контейнеры с определенным именем или его частью:

Terminal


docker ps -f "name=my_container"

3. Фильтрация по образу

Чтобы отобразить контейнеры, созданные из конкретного образа:

Terminal

docker ps -f "ancestor=nginx"

3.3 Форматирование вывода

Вы можете настроить вывод команды docker ps, чтобы сделать его более читаемым или включить только нужные вам поля. Для этого используется параметр --format.

Пример форматирования

Terminal


docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}"

Этот пример выводит таблицу с идентификатором контейнера, его именем и статусом.

Доступные колонки таблицы

  • {{.ID}}: идентификатор контейнера.
  • {{.Image}}: образ контейнера.
  • {{.Command}}: команда, выполняемая в контейнере.
  • {{.CreatedAt}}: время создания контейнера.
  • {{.RunningFor}}: время работы контейнера.
  • {{.Status}}: текущее состояние контейнера.
  • {{.Ports}}: перенаправленные порты.
  • {{.Names}}: имя контейнера.

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

Пример 1: отображение только идентификаторов контейнеров

Этот пример выведет только идентификаторы запущенных контейнеров. Полезно для использования в скриптах.

Terminal


docker ps -q

Пример 2: отображение контейнеров, запущенных за последние 24 часа

Terminal


docker ps --filter "since=24h" 

Пример 3: отображение контейнеров с определенным статусом и форматирование вывода

Этот пример выведет таблицу с именами контейнеров, их статусом и перенаправленными портами для всех запущенных контейнеров.

Terminal


docker ps -f "status=running" --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" 

3.4 Практические сценарии

1. Мониторинг запущенных контейнеров

Когда у вас запущено несколько контейнеров, команда docker ps позволяет вам быстро проверить их текущее состояние и убедиться, что всё работает корректно.

Terminal


docker ps 

2. Поиск и удаление остановленных контейнеров

После завершения работы контейнеров они остаются в системе до тех пор, пока вы их не удалите. Вы можете использовать docker ps -a для поиска всех остановленных контейнеров и затем удалить их.

Terminal

docker ps -a -f "status=exited" 
docker rm $(docker ps -a -f "status=exited" -q)
    

3. Автоматизация задач

Использование команды docker ps в скриптах позволяет автоматизировать различные задачи администрирования контейнеров. Например, вы можете создавать отчёты о состоянии контейнеров или автоматически перезапускать контейнеры, если они остановлены.

Terminal

if [ $(docker ps -q -f "name=my_container") ]; then
  echo "Container is running"
else
  docker start my_container
fi
    

Важно! Этот “код” написан в терминале Linux. Возможно, вам придётся его изучить.

3
Задача
Модуль 2: Fullstack, 12 уровень, 2 лекция
Недоступна
Просмотр всех контейнеров, включая остановленные
Просмотр всех контейнеров, включая остановленные
3
Задача
Модуль 2: Fullstack, 12 уровень, 2 лекция
Недоступна
Фильтрация по статусу контейнеров
Фильтрация по статусу контейнеров
3
Задача
Модуль 2: Fullstack, 12 уровень, 2 лекция
Недоступна
Форматирование вывода списка контейнеров
Форматирование вывода списка контейнеров
Комментарии (4)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Slevin Уровень 64
3 октября 2025

Важно! Этот “код” написан в терминале Linux. Возможно, вам придётся его изучить.
Да ладно?! 😳
Андрей Уровень 36
8 ноября 2025
Я один прочел это голосом Якубовича?
Илья Лопатин Уровень 24
9 июня 2025
docker ps --filter "since=24h" - не работает. фильтр since работает только с именами контейнеров
Александр Уровень 47
19 января 2025
Важно! Этот “код” написан в терминале Linux. Возможно, вам придётся его изучить. Или изменить?