Введение
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
g25t256ef623 postgres "docker-entrypoint.s…" 1 hours ago Up 2 hours 5432/tcp pg
2352h423454g redis "docker-entrypoint.s…" 2 hours ago Up 4 hours 6379/tcp cache
12g5g514454f nginx "nginx -g 'daemon of…" 1 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
124f134r2134 couchbase "/entrypoint.sh couc…" 4 hours ago Exited (0) 3 hours ago db
asfbafg23g34 postgres "docker-entrypoint.s…" 1 hours ago Up 2 hours 5432/tcp pg
3h425yu783k8 redis "docker-entrypoint.s…" 3 hours ago Up 4 hours 6379/tcp cache
013g345yh154 nginx "nginx -g 'daemon of…" 1 hours ago Up 2 hours 80/tcp web
По умолчанию столбцы, длина которых превышает указанный лимит, усекаются. Используйте параметр --no-trunc
, чтобы отключить усечение:
docker container ls --no-trunc
Чтобы отобразить только идентификаторы контейнеров, передайте параметр -q
, --quiet
:
docker container ls -q
asfbafg23g34
3h425yu783k8
013g345yh154
Параметр --format
позволяет форматировать вывод с использованием шаблона Go.Например, чтобы напечатать только имена и статус контейнеров, включая заголовок, вы должны сделать:
docker container ls --format 'table {{.Names}}\t{{.Status}}'
NAMES STATUS
pg Up 1 hours
cache Up 3 hours
web Up 1 hours
Используйте параметр -s
, --size
для отображения размеров контейнера:
docker container ls -s
Каждая строка будет включать столбец с именем SIZE
, который показывает размер контейнера:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES SIZE
asfbafg23g34 postgres "docker-entrypoint.s…" 1 hours ago Up 1 hours 5432/tcp pg 86B (virtual 451MB)
3h425yu783k8 redis "docker-entrypoint.s…" 3 hours ago Up 3 hours 6379/tcp cache 0B (virtual 87.1MB)
013g345yh154 nginx "nginx -g 'daemon of…" 1 hours ago Up 1 hours 80/tcp web 3B (virtual 216MB)
Параметр --last
, -n
указывает команде отображать последние n
созданных контейнеров, включая все состояния. Например, чтобы увидеть два последних созданных контейнера, вам нужно будет запустить:
docker container ls -n 2
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
245h5453f355 couchbase "/entrypoint.sh couc…" 4 hours ago Exited (0) 2 hours ago db
asfbafg23g34 postgres "docker-entrypoint.s…" 1 hours ago Up 1 hours 5432/tcp pg
Существует также возможность перечислить только последний созданный контейнер --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
245h5453f355 couchbase "/entrypoint.sh couc…" 4 hours ago Exited (0) 2 hours ago db
Список всех поддерживаемых фильтров см. в документации Docker.
Вывод
Контейнер Docker — это автономный экземпляр образа во время выполнения. Чтобы получить список контейнеров Docker, используйте команду docker container ls
или ее псевдоним docker ps
.