ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

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

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

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

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

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

команда ps команда container команда displays
docker ps docker container ls бегущие контейнеры
docker ps -a docker container ls -a все контейнеры
docker ps
-f “status = exited”
docker container ls
-f “status = exited”
остановленные контейнеры
docker ps -q docker container ls -q ID запущенных контейнеров
docker ps -l docker 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

 

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

 

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

Если вы хотите увидеть все контейнеры в вашей системе, используйте опцию -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 для остановленных контейнеров. Есть еще несколько статусов для контейнеров, которые вы можете использовать для различных целей:

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

 

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

Вы можете использовать фильтры для отображения всех контейнеров, связанных с определенным изображением, только с помощью фильтра 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

 

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

Exit mobile version