🐳 Полезные примеры использования команды Docker ps

Мануал

Самая распространенная команда Docker также является универсальной командой.

Узнайте о нескольких вариантах использования команды docker ps.

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

Она показывает запущенные контейнеры:

docker ps

На самом деле, выполнив эту команду, вы получите список запущенных контейнеров и их уникальный ID контейнера, имя образа, команду, которую он выполняет, время, прошедшее с момента запуска (uptime), и порты, которые он использует.

Но вы можете сделать немного больше.

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

Давайте рассмотрим эту важную команду Docker более подробно.

Команда docker ps3

В Docker есть алиас для отображения всех запущенных контейнеров.

Это подкоманда ps в Docker.

Она является псевдонимом команды docker container ls.

Которая, как вы можете догадаться, используется для вывода списка контейнеров docker.

Вот пример выполнения команды docker ps на моем компьютере:

$ docker ps 
CONTAINER ID   IMAGE                              COMMAND                  CREATED          STATUS                       PORTS                                   NAMES
58c7013a49c3   nextcloud                          "/entrypoint.sh apac…"   32 seconds ago   Up 31 seconds                0.0.0.0:8010->80/tcp, :::8010->80/tcp   nextcloud_server
140161b8b139   mariadb                            "docker-entrypoint.s…"   34 seconds ago   Up 32 seconds                3306/tcp                                nextcloud_db
73a6901a4846   lscr.io/linuxserver/transmission   "/init"                  17 minutes ago   Exited (137) 9 minutes ago                                           transmission_web

Как вы можете видеть, опция -a также показывает контейнеры, которые были остановлены.

Фильтруйте вывод команды docker ps для получения более точного результата

Команда docker ps имеет очень полезную опцию –filter (или сокращенно -f).

Как видно из названия опции, вы можете отфильтровать контейнеры по следующим полям:

  • id
  • name
  • label
  • exited
  • status
  • ancestor
  • since
  • volume
  • publish
  • health
  • isolation

Я создал контейнер с именем nextcloud_server.

Я хочу видеть подробную информацию о контейнерах, но только о тех, у которых нужное мне имя.

Давайте посмотрим, как использовать фильтр по имени.

$ docker ps --filter "name=nextcloud_server"
CONTAINER ID   IMAGE       COMMAND                  CREATED       STATUS       PORTS                                   NAMES
58c7013a49c3   nextcloud   "/entrypoint.sh apac…"   3 hours ago   Up 3 hours   0.0.0.0:8010->80/tcp, :::8010->80/tcp   nextcloud_server

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

Давайте попробуем использовать фильтр id.

У меня есть контейнер MariaDB с идентификатором “140161b8b139”. Для этого я использую следующую команду.

$ docker ps --filter "id=140161b8b139"
CONTAINER ID   IMAGE     COMMAND                  CREATED        STATUS        PORTS      NAMES
140161b8b139   mariadb   "docker-entrypoint.s…"   15 hours ago   Up 15 hours   3306/tcp   nextcloud_db

Показать контейнеры в порядке их создания

Да, вы можете вывести список контейнеров, отсортированных в порядке даты их создания, используя параметр –latest (или l для краткости).

Порядок будет следующим: самый новый – сверху, самый старый – снизу.

Вот примерный результат выполнения команды docker ps –latest на моем компьютере:

$ docker ps --latest
CONTAINER ID   IMAGE                              COMMAND                  CREATED        STATUS                      PORTS                                   NAMES
58c7013a49c3   nextcloud                          "/entrypoint.sh apac…"   15 hours ago   Up 15 hours                 0.0.0.0:8010->80/tcp, :::8010->80/tcp   nextcloud_server
73a6901a4846   lscr.io/linuxserver/transmission   "/init"                  16 hours ago   Exited (137) 16 hours ago                                           transmission_web

С этой командой есть несколько проблем.

  • Любые контейнеры, которые используются как “зависимость”, не будут перечислены.
  • Вывод включает все состояния контейнеров (это означает, что даже остановленные контейнеры будут перечислены).

Я создал контейнер “nextcloud_server” с MariaDB в качестве “зависимости”.

Поэтому этот контейнер не будет указан в выводе при использовании флага –latest.

Скрипт? Как показать только идентификаторы контейнеров

Предположим, вы пишете скрипт и хотите иметь дело только с идентификаторами контейнеров, чтобы вы могли выполнять действия над контейнерами.

Для этого вы можете использовать опцию –quiet (или -q для краткости).

Ниже приведен результат выполнения docker ps -q на моем компьютере.

$ docker ps -q
58c7013a49c3
140161b8b139

Как вы можете видеть, вывод состоит только из идентификаторов контейнеров (контейнеров, которые запущены) и ничего больше.

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

Дайте мне знать, если вы узнали что-то новое или знаете другой полезный пример использования команды docker ps.

см. также:

 

Добавить комментарий