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

Ниже я объясню основные параметры фильтрации вместе с реальными примерами.


Основной формат



docker ps -a --filter <имя_фильтра>=<значение_фильтра>

Вы можете одновременно использовать несколько фильтров, в таком случае необходимо добавить несколько параметров --filter.


🔍 Основные параметры фильтрации и примеры использования

1. Фильтрация по состоянию (status)

Используется для фильтрации по состоянию контейнера.

Опции состояния Описание
created Контейнер создан, но ещё не запущен
restarting Контейнер постоянно перезапускается
running Контейнер сейчас работает
paused Контейнер приостановлен
exited Контейнер завершён

Пример: Показать только работающие контейнеры

docker ps -a --filter status=running

Пример: Показать только завершённые контейнеры

docker ps -a --filter status=exited

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

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

Пример: Показать только контейнеры, имеющие имя с "web"

docker ps -a --filter name=web
  • Пример результата:
CONTAINER ID   IMAGE           COMMAND     CREATED         STATUS         NAMES 
f1c2d3e4f5     nginx:latest    "/start"    2 days ago      Up 2 days      my-web-container

3. Фильтрация по использованному образу (image)

Удобно, чтобы быстро находить контейнеры, использующие конкретный образ.

Пример: Показать контейнеры, использующие образ nginx

docker ps -a --filter ancestor=nginx
  • Пример результата:
CONTAINER ID   IMAGE          COMMAND          STATUS        NAMES
a1b2c3d4e5     nginx:latest   "/start"         Up 3 hours    nginx-server-1
f6g7h8i9j0     nginx:alpine   "/start"         Exited        nginx-temp

4. Фильтрация по томам (volume)

Полезно для поиска контейнеров, смонтировавших определённый том.

Пример: Показать контейнеры, использующие том my_volume

docker ps -a --filter volume=my_volume
  • Пример результата:
CONTAINER ID   IMAGE          COMMAND           STATUS         NAMES
1a2b3c4d5e     postgres       "docker-entry"    Up 2 days      postgres_db

5. Фильтрация по меткам (label)

Полезно для управления контейнерами с метками в Docker Compose или Kubernetes.

Пример: Показать контейнеры с меткой "env=production"

docker ps -a --filter label=env=production

  • Пример результата:
CONTAINER ID   IMAGE           COMMAND         STATUS          NAMES 
abcdef12345    myapp:latest    "/run-app"      Up 3 days       myapp-production

6. Фильтрация по сети (network)

Полезно проверить список контейнеров, подключённых к определённой сети.

Пример: Показать контейнеры, подключённые к определённой сети

docker ps -a --filter network=my_network

  • Пример результата:
CONTAINER ID   IMAGE          COMMAND          STATUS         NAMES 
123abc456de    redis          "/start"         Up 1 day       redis-cache 
456def789gh    postgres       "/start"         Up 1 day       postgres-db

7. Фильтрация по ID

Используется для быстрого поиска контейнера по конкретному ID. (Обычно достаточно ввести только часть ID.)

Пример: Показать контейнеры, ID которых начинается с 1234

docker ps -a --filter id=1234

💡 Использование нескольких фильтров одновременно



Фильтры можно комбинировать.

Пример: Найти контейнеры, которые содержат "web" в имени, находятся в состоянии "running" и используют образ "nginx"

docker ps -a --filter name=web --filter status=running --filter ancestor=nginx

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

  • Остановить все контейнеры конкретного проекта:
docker stop $(docker ps -a -q --filter name=my_project)****
  • Удалить старые завершённые контейнеры:
docker rm $(docker ps -a -q --filter status=exited)
  • Очистить ненужные временные контейнеры:
docker rm $(docker ps -a -q --filter ancestor=temp_image)

Таким образом, команда docker ps -a --filter очень практична и мощна, позволяя быстро фильтровать и управлять контейнерами по необходимым условиям, когда их становится много. Активно используйте ее!