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

Docker — это платформа контейнеризации, которая позволяет быстро создавать, тестировать и развертывать приложения в виде переносимых самодостаточных контейнеров, которые могут работать практически где угодно. Это де-факто стандарт для развертывания контейнеров, и это важный инструмент для инженеров DevOps и их конвейеров непрерывной интеграции и доставки.

В этой статье мы объясним, как составить список контейнеров Docker.

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

Команда Docker для вывода списка контейнеров имеет следующий вид:

docker container ls [options]

В более старых версиях Docker до 1.13 для вывода списка контейнеров используется другая команда:

docker ps [options]

Приведенная выше команда по-прежнему поддерживается в более новых версиях Docker, где команда ps является псевдонимом container ls .

Чтобы вывести список запущенных контейнеров, выполните команду docker container ls без каких-либо параметров:

docker container ls

Результат будет выглядеть примерно так:

CONTAINER ID    IMAGE        COMMAND                  CREATED        STATUS        PORTS       NAMES
c8bded53da86    postgres     "docker-entrypoint.s…"   2 hours ago    Up 2 hours    5432/tcp    pg
571c3a115fcf    redis        "docker-entrypoint.s…"   4 hours ago    Up 4 hours    6379/tcp    cache
05ef6d8680ba    nginx        "nginx -g 'daemon of…"   2 hours ago    Up 2 hours    80/tcp      web

Каждая строка вывода включает следующие столбцы:

  • Container ID — уникальная буквенно-цифровая строка, которая идентифицирует каждый контейнер.
  • Image — образ Docker, который используется для создания контейнера.
  • Command — команда, которая выполняется при запуске контейнера.
  • Created — время создания контейнера.
  • Status — статус контейнера.
  • Ports — опубликованные порты контейнера.
  • Name — имя контейнера.

Если запущенных контейнеров нет, отображается только строка заголовка.

Параметр -a , --all указывает docker container ls напечатать список всех контейнеров:

docker container ls -a
CONTAINER ID    IMAGE        COMMAND                  CREATED        STATUS                    PORTS       NAMES
b28cbaa91f15    couchbase    "/entrypoint.sh couc…"   5 hours ago    Exited (0) 3 hours ago                db
c8bded53da86    postgres     "docker-entrypoint.s…"   2 hours ago    Up 2 hours                5432/tcp    pg
571c3a115fcf    redis        "docker-entrypoint.s…"   4 hours ago    Up 4 hours                6379/tcp    cache
05ef6d8680ba    nginx        "nginx -g 'daemon of…"   2 hours ago    Up 2 hours                80/tcp      web

По умолчанию столбцы, длина которых превышает указанный предел, усекаются. Используйте параметр --no-trunc чтобы отключить усечение:

docker container ls --no-trunc

Чтобы отображались только идентификаторы контейнеров, передайте параметр -q , --quiet :

docker container ls -q
c8bded53da86
571c3a115fcf
05ef6d8680ba

Параметр --format позволяет форматировать вывод с помощью шаблона Go. Например, чтобы распечатать только имена и статус контейнеров, включая заголовок, вы должны запустить:

docker container ls --format 'table {{.Names}}t{{.Status}}'
NAMES    STATUS
pg       Up 2 hours
cache    Up 4 hours
web      Up 2 hours

Используйте параметр -s , --size чтобы просмотреть размер контейнеров:

docker container ls -s

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

CONTAINER ID    IMAGE        COMMAND                  CREATED        STATUS        PORTS       NAMES    SIZE
c8bded53da86    postgres     "docker-entrypoint.s…"   2 hours ago    Up 2 hours    5432/tcp    pg       63B (virtual 394MB)
571c3a115fcf    redis        "docker-entrypoint.s…"   4 hours ago    Up 4 hours    6379/tcp    cache    0B (virtual 98.2MB)
05ef6d8680ba    nginx        "nginx -g 'daemon of…"   2 hours ago    Up 2 hours    80/tcp      web      2B (virtual 126MB)

Параметр --last , -n указывает команде отображать n последних созданных контейнеров, включая все состояния. Например, чтобы просмотреть два последних созданных контейнера, вы должны запустить:

docker container ls -n 2
CONTAINER ID    IMAGE        COMMAND                  CREATED        STATUS                    PORTS       NAMES
b28cbaa91f15    couchbase    "/entrypoint.sh couc…"   5 hours ago    Exited (0) 3 hours ago                db
c8bded53da86    postgres     "docker-entrypoint.s…"   2 hours ago    Up 2 hours                5432/tcp    pg

Также есть возможность --latest только последний созданный контейнер --latest , -l который аналогичен -n 1 :

docker container ls -l

Параметр --filter , -f позволяет фильтровать вывод по определенным критериям.

Например, чтобы просмотреть только контейнеры со статусом « exited , вы должны запустить:

docker container ls -f "status=exited"
CONTAINER ID    IMAGE        COMMAND                  CREATED        STATUS                    PORTS       NAMES
b28cbaa91f15    couchbase    "/entrypoint.sh couc…"   5 hours ago    Exited (0) 3 hours ago                db

Список всех поддерживаемых фильтров см. В документации Docker.

Выводы

Контейнер Docker — это автономный экземпляр образа во время выполнения. Чтобы вывести список контейнеров Docker, используйте команду docker container ls или ее псевдоним docker ps .

Если у вас есть вопросы, оставьте комментарий ниже.

Оставьте комментарий