3.1 Основы команды docker ps
Команда docker ps — одна из самых полезных в арсенале Docker. Она отображает список работающих контейнеров и предоставляет информацию о них. В этой лекции мы подробно рассмотрим, как использовать docker ps, чтобы проверить состояние ваших контейнеров и какие параметры доступны для более детализированного вывода информации.
По умолчанию команда docker ps выводит список только тех контейнеров, которые в данный момент запущены.
Синтаксис
docker ps [OPTIONS]
Где:
-
OPTIONS: дополнительные параметры для фильтрации и форматирования вывода.
Пример базового использования
docker ps
Этот базовый вызов команды docker ps выведет список всех запущенных контейнеров. Вывод будет включать следующие поля:
- CONTAINER ID: уникальный идентификатор контейнера.
- IMAGE: образ, из которого был создан контейнер.
- COMMAND: команда, выполняемая в контейнере.
- CREATED: время, прошедшее с момента создания контейнера.
- STATUS: текущее состояние контейнера (например, Up 5 minutes).
- PORTS: перенаправленные порты.
- NAMES: имя контейнера.
Список всех контейнеров
Для отображения всех контейнеров, включая остановленные, используйте опцию -a:
docker ps -a
Эта команда выведет список всех контейнеров, запущенных когда-либо, с указанием их текущего состояния (запущен, остановлен и т.д.).
3.2 Фильтрация вывода
Docker предоставляет возможность фильтровать вывод команды docker ps для отображения только тех контейнеров, которые соответствуют заданным критериям.
1. Фильтрация по статусу
Например, чтобы отобразить только остановленные контейнеры:
docker ps -f "status=exited"
2. Фильтрация по имени
Чтобы отобразить контейнеры с определенным именем или его частью:
docker ps -f "name=my_container"
3. Фильтрация по образу
Чтобы отобразить контейнеры, созданные из конкретного образа:
docker ps -f "ancestor=nginx"
3.3 Форматирование вывода
Вы можете настроить вывод команды docker ps, чтобы сделать его более читаемым или включить только нужные вам поля. Для этого используется параметр --format.
Пример форматирования
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}"
Этот пример выводит таблицу с идентификатором контейнера, его именем и статусом.
Доступные колонки таблицы
- {{.ID}}: идентификатор контейнера.
- {{.Image}}: образ контейнера.
- {{.Command}}: команда, выполняемая в контейнере.
- {{.CreatedAt}}: время создания контейнера.
- {{.RunningFor}}: время работы контейнера.
- {{.Status}}: текущее состояние контейнера.
- {{.Ports}}: перенаправленные порты.
- {{.Names}}: имя контейнера.
Примеры использования
Пример 1: отображение только идентификаторов контейнеров
Этот пример выведет только идентификаторы запущенных контейнеров. Полезно для использования в скриптах.
docker ps -q
Пример 2: отображение контейнеров, запущенных за последние 24 часа
docker ps --filter "since=24h"
Пример 3: отображение контейнеров с определенным статусом и форматирование вывода
Этот пример выведет таблицу с именами контейнеров, их статусом и перенаправленными портами для всех запущенных контейнеров.
docker ps -f "status=running" --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
3.4 Практические сценарии
1. Мониторинг запущенных контейнеров
Когда у вас запущено несколько контейнеров, команда docker ps позволяет вам быстро проверить их текущее состояние и убедиться, что всё работает корректно.
docker ps
2. Поиск и удаление остановленных контейнеров
После завершения работы контейнеров они остаются в системе до тех пор, пока вы их не удалите. Вы можете использовать docker ps -a для поиска всех остановленных контейнеров и затем удалить их.
docker ps -a -f "status=exited"
docker rm $(docker ps -a -f "status=exited" -q)
3. Автоматизация задач
Использование команды docker ps в скриптах позволяет автоматизировать различные задачи администрирования контейнеров. Например, вы можете создавать отчёты о состоянии контейнеров или автоматически перезапускать контейнеры, если они остановлены.
if [ $(docker ps -q -f "name=my_container") ]; then
echo "Container is running"
else
docker start my_container
fi
Важно! Этот “код” написан в терминале Linux. Возможно, вам придётся его изучить.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ