
Список контейнеров Docker: подробное руководство
Составление списка контейнеров — важнейший шаг при работе с контейнеризированными приложениями. Это помогает увидеть, какие контейнеры запущены на хосте Docker , отслеживать их состояние, более эффективно использовать ресурсы и выявлять потенциальные проблемы. Этот процесс также способствует балансировке нагрузки, организации размещения контейнеров и обеспечению безопасности путем проверки на наличие несанкционированных или вредоносных контейнеров.
Содержание:
- Просмотр запущенных контейнеров
- Просмотр всех контейнеров
- Понимание полезности листинга новейшего контейнера в различных сценариях
- Просмотр полных значений в выводе:
- Понимание столбца «Дополнительный размер» в выходных данных
- Настройка вывода
- Примеры настройки отображаемой информации
- Использование расширенных фильтров
- Фильтрация по различным критериям, таким как имя, метка, статус и т. д.
- Заключение
Просмотр запущенных контейнеров
Используйте команду `docker ps`, чтобы вывести список только запущенных в данный момент контейнеров. Если вы создали несколько контейнеров, некоторые из них могут быть запущены, а другие остановлены. При выполнении команды `docker ps` по умолчанию отобразится список только активных контейнеров.

Понимание столбцов в выходных данных:
После выполнения команды `docker ps` вы увидите список столбцов для каждого активного контейнера, отображающий различные подробности:
– Идентификатор контейнера: В этом столбце отображается уникальный идентификатор, присвоенный каждому запущенному контейнеру.
– Изображение: Здесь показано изображение, использованное для создания каждого контейнера.
– Команда: В этом столбце отображается команда, которая выполняется в фоновом режиме для запуска и управления контейнером.
– Created: Отметка времени создания каждого контейнера.
– Статус: Этот параметр указывает текущее состояние каждого контейнера, например, запущен, завершен, приостановлен, удален или перезапущен.
– Порты: В этом столбце отображаются порты, сопоставленные с каждым контейнером, что позволяет получать доступ к службам внутри контейнера, используя порты хост-машины. Например, если порт 8080 на хосте сопоставлен с портом 80 в контейнере, вы можете получить доступ к веб-службе контейнера по адресу `http://localhost:8080`.
– Имена: Каждому контейнеру присваивается уникальное имя.

Просмотр всех контейнеров
Чтобы вывести список всех контейнеров, включая остановленные, используйте команду `docker ps -a` . Она отобразит все контейнеры, независимо от того, запущены они, приостановлены, перезапущены или остановлены.

Различение запущенных и остановленных контейнеров в выходных данных:
При выполнении команды `docker ps -a` вы можете определить, работают контейнеры или нет, проверив столбец 'STATUS' . Если статус показывает что-то вроде «up 3 hours», это означает, что контейнер работал последние 3 часа. С другой стороны, если отображается «Exited 4 hours ago», контейнер был остановлен 4 часа назад.

Список недавно созданных контейнеров
Команда `docker ps -l` использовалась для вывода списка недавно созданных контейнеров. Однако опция `-l` устарела в более новых версиях Docker. Вместо неё можно использовать `docker ps -n 1` для просмотра списка последних созданных контейнеров. При использовании команды `docker ps -n 1` необходимо указать количество контейнеров, которые вы хотите вывести, после ключевого слова `-n` . Например, чтобы увидеть последние 5 созданных контейнеров, нужно выполнить команду `docker ps -n 5`.

Понимание полезности листинга новейшего контейнера в различных сценариях
● Откат при возникновении проблем после обновления:
Если вы часто развертываете обновления для своего контейнерного приложения, и что-то идет не так после последнего обновления, эта команда может быть очень полезной. Она позволяет быстро определить последние контейнеры, созданные после обновления, что упрощает откат к предыдущей стабильной версии.
● Ограничения ресурсов для развертывания контейнера:
Если ваша система имеет ограниченные ресурсы, такие как ЦП, ОЗУ или хранилище, и вы хотите распределить их более эффективно, важно отслеживать, сколько из этих ресурсов используют самые последние контейнеры. Эта команда поможет вам составить список самых последних контейнеров, чтобы вы могли настроить их конфигурации для оптимизации использования ресурсов.
Отключение усечения
Команда `docker ps –no-trunc` используется для предотвращения усечения имен контейнеров. При запуске команды `docker ps` вы можете заметить, что некоторые значения в выводе, такие как идентификаторы контейнеров или имена образов, укорачиваются, что может затруднить их чтение. Чтобы избежать этого, вы можете использовать команду `docker ps –no-trunc`. Это отключит усечение Docker по умолчанию, что позволит вам увидеть полные значения в выводе.
Просмотр полных значений в выводе:
Вот пример вывода, который вы увидите после отключения усечения Docker с помощью команды `docker ps –no-trunc` :

Перечисление только идентификаторов контейнеров (тихий режим)
Команда `docker ps -q` используется для вывода только идентификаторов контейнеров в тихом режиме. Часто дополнительные сведения, такие как образы, порты и имена в выводе `docker ps`, могут быть не нужны. Если вас интересуют только идентификаторы контейнеров без дополнительной информации, вы можете использовать команду `docker ps -q` . Это изменит вывод, чтобы отображались только идентификаторы контейнеров.

Идеальные сценарии использования только идентификаторов контейнеров:
Оркестровочные среды
Многие организации, особенно крупные предприятия, полагаются на инструменты оркестровки, такие как Kubernetes и Docker Swarm. Эти инструменты часто используют идентификаторы контейнеров для эффективного управления и планирования контейнеров. Команда `docker ps -q` позволяет получить идентификаторы контейнеров, что дает возможность выполнять операции с контейнерами в среде оркестровки.
Соединение контейнеров
В распределенной системе обычно устанавливают соединения между контейнерами для совместного использования ресурсов, сетевого взаимодействия и масштабируемости. Для настройки этих соединений вам понадобятся определенные идентификаторы контейнеров. Команда `docker ps -q` поможет вам быстро собрать требуемые идентификаторы для создания этих соединений.
Проверка размера контейнера
Команда `docker ps –size` показывает размер каждого контейнера. Как упоминалось ранее в разделе «Список последних контейнеров», ограниченные ресурсы, такие как ЦП, ОЗУ и хранилище, требуют тщательного мониторинга. Эта команда позволяет проверить дисковое пространство, используемое каждым контейнером, помогая быстро выявить контейнеры, которые потребляют слишком много места, чтобы вы могли принять меры для более эффективного управления ресурсами.

Понимание столбца «Дополнительный размер» в выходных данных
При выполнении команды `docker ps –size` в выводе появится дополнительный столбец, отображающий как фактический размер, так и виртуальный размер, используемый каждым контейнером.
– Фактический размер: это размер, используемый записываемым слоем контейнера, который включает файловую систему контейнера и любые внесенные в нее изменения.
– Виртуальный размер: представляет собой общее дисковое пространство, необходимое, если каждый слой в контейнере хранился отдельно и не был общим. Он включает в себя объединенный размер всех слоев в контейнере, таких как базовые изображения, общие слои и дополнительные слои.
Настройка вывода
Команда `docker ps –format` позволяет вам настраивать формат вывода, выбирая только те столбцы, которые вы хотите отображать при перечислении ваших контейнеров. Для этого вы можете использовать опцию `–format` со строкой шаблона Go, которая встроена в Docker и основана на языке программирования Go. Этот синтаксис легко использовать напрямую с командами Docker. Команда будет выглядеть следующим образом: `docker ps --format "GOTEMPLATE"`.
Синтаксис строки шаблона Go:
`docker ps --format "ID: {{.ID}}, Name: {{.Names}}, Image: {{.Image}}, Status: {{.Status}}"`
В этом синтаксисе двойные фигурные скобки `{{}}` представляют собой заполнители, которые соответствуют определенным свойствам контейнера, таким как ID, Names, Image и Status. При запуске команды эти заполнители будут заменены фактическими значениями.
Примеры настройки отображаемой информации
Вот как можно настроить вывод, чтобы отображались только идентификатор контейнера, изображение и имя:

Теперь давайте настроим вывод для отображения последних контейнеров, включая идентификатор контейнера, статус и дополнительный столбец для РАЗМЕРА:

Использование расширенных фильтров
Команда `docker ps –filter` позволяет применять расширенные фильтры для отображения контейнеров на основе определенных атрибутов или условий. Для ее использования просто добавьте опцию `–filter`, за которой следует пара ключ-значение. «Ключ» обозначает атрибут контейнера, по которому вы хотите выполнить фильтрацию, а «значение» — условие, которое вы хотите применить. Одна из полезных функций опции `--filter` заключается в том, что вы можете использовать ее несколько раз с различными условиями.
Фильтрация по различным критериям, таким как имя, метка, статус и т. д.
Например, для фильтрации по имени контейнера можно использовать следующую команду, чтобы отобразить только контейнер с именем «admiring_benz» :
`docker ps --filter "name=admiring_benz"`

Фильтрация по статусу: вы можете фильтровать вывод на основе различных статусов контейнера, таких как «завершен», «создан» или «работает».
Например, вы можете использовать следующие команды для фильтрации контейнеров по их статусу:
- `docker ps --filter "status=running"`
- `docker ps --filter "status=exited"`
- `docker ps --filter "status=created"`

Фильтрация по метке: вы можете применить несколько фильтров к выходным данным, используя ключевое слово `–filter` как для атрибута статуса, так и для условий метки. Например, чтобы отфильтровать контейнеры на основе статуса «создано» и определенной метки, вы можете использовать следующую команду:
`docker ps --filter "status=created" --filter "label=com.example.version=1.0"`

Заключение
Команда `docker ps` используется для вывода списка всех запущенных контейнеров. Комбинируя `docker ps` с различными опциями, такими как `docker ps -n 5` , `docker ps -l` , `docker ps -a` и `docker ps -q` , вы можете настроить вывод таким образом, чтобы отображались последние запущенные контейнеры, только идентификаторы контейнеров или список контейнеров в различных состояниях (например, запущенные, остановленные или созданные).
Вы также можете изменить формат вывода, используя параметр `–format` , а затем шаблон Go, чтобы отобразить информацию о контейнере определенным образом (например, `docker ps –format “TEMPLATE”`) . Для отображения контейнеров на основе определенных атрибутов можно использовать расширенные фильтры с помощью параметра `–filter`.
Кроме того, фактические и виртуальные размеры контейнеров можно просмотреть в дополнительном столбце, используя ключевое слово `–size` в команде `docker ps` (например, `docker ps –size`).

