Поиск по сайту:
Вытапливай воск, но сохраняй мед (К. Прутков).

Как составить список контейнеров Docker

29.07.2020
Установить Docker 1.11 на Ubuntu 16.04 LTS x64

Как вы перечисляете все док-контейнеры, присутствующие в вашей системе?

Есть два способа сделать это:

  • Использование команды docker ps (старый и популярный метод)
  • Использование команды docker container (более новый и менее известный метод)

Позвольте нам быстро перечислить команды с наиболее распространенными примерами для вашего быстрого ознакомления.

команда psкоманда containerкоманда displays
docker psdocker container lsбегущие контейнеры
docker ps -adocker container ls -aвсе контейнеры
docker ps
-f “status = exited”
docker container ls
-f “status = exited”
остановленные контейнеры
docker ps -qdocker container ls -qID запущенных контейнеров
docker ps -ldocker container ls -lпоследний созданный контейнер

 

Как вы можете видеть, как команды ps и container совпадают с их вариантами.

Однако, поскольку docker хочет правильно организовать команды, они рекомендуют использовать команду docker container ls.

По этой причине мы будем использовать команду docker container ls в подробных примерах.

 

Показать работающие докеры

Без каких-либо опций вы увидите только запущенные контейнеры.

docker container ls

 

Вывод подробный:

destroyer@andreyex:~$ docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
f03e48cb07ea        ubuntu              "bash"              8 seconds ago       Up 6 seconds                            ubuntu-c-1
93f84eb0f579        alpine              "/bin/sh"           23 seconds ago      Up 22 seconds                           alp_con2

 

Если вы впервые видите этот вывод, позвольте нам объяснить различные элементы вывода:

  • Container ID – Уникальный числовой идентификатор для идентификации контейнера
  • Image – Образ Docker, который создал контейнер
  • Command – команда по умолчанию, которая выполняется при запуске контейнера
  • Created – Относительное время, когда был создан контейнер
  • Status – Состояние контейнера (будет объяснено позже)
  • Ports – Опубликованы порты контейнера
  • Name – Название контейнера. Если ничего не указано, случайное имя присваивается в любом случае.
Читать  Как перезапустить оболочку GNOME из командной строки, не закрывая никаких приложений (только X11)

 

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

Если вы хотите увидеть все контейнеры в вашей системе, используйте опцию -a.

docker container ls -a

 

Вот пример вывода, и вы можете видеть, что теперь он также показывает несколько остановленных контейнеров.

destroyer@andreyex:~$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                   PORTS               NAMES
f03e48cb07ea        ubuntu              "bash"              37 minutes ago      Up 37 minutes                                ubuntu-c-1
93f84eb0f579        alpine              "/bin/sh"           37 minutes ago      Up 37 minutes                                alp_con2
1c1c04a84186        alpine              "bash"              38 minutes ago      Created                                      alp_con
6fbc4bf4897b        ubuntu              "/bin/bash"         2 hours ago         Exited (0) 2 hours ago                       fervent_hofstadter
8b9565ba7661        alpine              "/bin/sh"           2 hours ago         Exited (0) 2 hours ago                       beautiful_williamson
853e748608bc        hello-world         "/hello"            2 hours ago         Exited (0) 2 hours ago                       stoic_engelbart

 

Отображать только остановленные контейнеры

Если вы хотите перечислить только остановленные контейнеры, вы можете отфильтровать вывод по состоянию exited.

docker container ls --filter "status=exited"

 

Вот отфильтрованный вывод:

destroyer@andreyex:~$ docker container ls --filter "status=exited"
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                   PORTS               NAMES
6fbc4bf4897b        ubuntu              "/bin/bash"         2 hours ago         Exited (0) 2 hours ago                       fervent_hofstadter
8b9565ba7661        alpine              "/bin/sh"           2 hours ago         Exited (0) 2 hours ago                       beautiful_williamson
853e748608bc        hello-world         "/hello"            2 hours ago         Exited (0) 2 hours ago                       stoic_engelbart

 

Состояние exited для остановленных контейнеров. Есть еще несколько статусов для контейнеров, которые вы можете использовать для различных целей:

  • created – Контейнер, который был создан, но не запущен
  • restarting – контейнер в процессе перезапуска
  • running – Бегущий контейнер
  • paused – контейнер, процессы которого были приостановлены
  • exited – остановленный контейнер
  • dead – Контейнер, который пытались остановить, но не удалось
Читать  4 бесплатные альтернативы Docker Desktop в 2024 году

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

 

Показать контейнеры, связанные с изображением

Вы можете использовать фильтры для отображения всех контейнеров, связанных с определенным изображением, только с помощью фильтра ancestor.

docker container ls -a --filter "ancestor=image_name"

 

Вот вывод, который отображает все контейнеры, связанные с образом док-станции Alpine Linux.

destroyer@andreyex:~$ docker container ls -a --filter "ancestor=alpine"
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                   PORTS               NAMES
93f84eb0f579        alpine              "/bin/sh"           48 minutes ago      Up 48 minutes                                alp_con2
1c1c04a84186        alpine              "bash"              49 minutes ago      Created                                      alp_con
8b9565ba7661        alpine              "/bin/sh"           2 hours ago         Exited (0) 2 hours ago                       beautiful_williamson

 

Отображать только идентификатор контейнера

Вы заметили, что все вышеперечисленные команды имеют подробный вывод для контейнеров?

Если вам не нужна дополнительная информация, такая как имя контейнера, связанное изображение, его статус, вы можете использовать тихую опцию -q.

Например, если мы используем опцию -q в предыдущем примере, она дает мне только идентификаторы всех контейнеров, связанных с Alpine Linux.

destroyer@andreyex:~$ docker container ls -a -q --filter "ancestor=alpine"
93f84eb0f579
1c1c04a84186
8b9565ba7661

 

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
При создании стартапа вы не можете ожидать, что ваша служба…

Спасибо!

Теперь редакторы в курсе.