Как использовать команду docker container ls для вывода списка контейнеров

DockerDockerBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этой лабораторной работе (LabEx) вы научитесь эффективно использовать команду docker container ls (также известную как docker ps) для просмотра и управления контейнерами Docker. Вы начнёте с вывода только работающих контейнеров, а затем расширите представление, включив все контейнеры, включая остановленные.

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/stop("Stop Container") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") subgraph Lab Skills docker/run -.-> lab-555114{{"Как использовать команду docker container ls для вывода списка контейнеров"}} docker/ps -.-> lab-555114{{"Как использовать команду docker container ls для вывода списка контейнеров"}} docker/stop -.-> lab-555114{{"Как использовать команду docker container ls для вывода списка контейнеров"}} docker/pull -.-> lab-555114{{"Как использовать команду docker container ls для вывода списка контейнеров"}} end

Список работающих контейнеров

На этом шаге вы узнаете, как вывести список работающих Docker-контейнеров. Команда docker ps используется для отображения информации о запущенных контейнерах.

Сначала запустим простой контейнер, который будет оставаться активным. Мы используем образ ubuntu и выполним команду, которая поддерживает работу контейнера.

docker pull ubuntu
docker run -d ubuntu sleep infinity

Команда docker pull ubuntu загружает образ ubuntu из Docker Hub. Команда docker run -d ubuntu sleep infinity запускает новый контейнер на основе образа ubuntu.

  • -d запускает контейнер в detached mode (фоновом режиме), то есть в фоновом режиме.
  • ubuntu — это имя образа.
  • sleep infinity — команда, выполняемая внутри контейнера, которая поддерживает его работу бесконечно.

Теперь выведем список работающих контейнеров с помощью команды docker ps.

docker ps

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

Отображение всех контейнеров, включая остановленные

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

Сначала остановим контейнер ubuntu, который мы запустили ранее. Для этого потребуется ID или имя контейнера, которые можно получить из вывода команды docker ps.

docker stop $(docker ps -q --filter ancestor=ubuntu)

Команда docker stop останавливает работающий контейнер.

  • $(docker ps -q --filter ancestor=ubuntu) — это подстановка команды, которая получает ID контейнера на основе образа ubuntu. Флаг -q выводит только ID контейнера, а --filter ancestor=ubuntu фильтрует по имени образа.

Теперь выведем список всех контейнеров, включая остановленный, с помощью docker ps -a.

docker ps -a

Эта команда отобразит список всех созданных контейнеров, независимо от их текущего состояния (работает, остановлен, завершён и т.д.). Вы должны увидеть контейнер ubuntu в списке, и его статус будет указан как "Exited" (Завершён).

Фильтрация контейнеров по статусу и имени

На этом шаге вы узнаете, как фильтровать список контейнеров по их статусу и имени с помощью флага --filter в команде docker ps. Это полезно, когда у вас много контейнеров и нужно найти конкретные.

Сначала запустим ещё один контейнер, но на этот раз зададим ему определённое имя.

docker run -d --name my-nginx nginx

Команда docker run -d --name my-nginx nginx создаёт новый контейнер на основе образа nginx в detached mode (фоновом режиме) и присваивает ему имя my-nginx.

  • Явное выполнение docker pull nginx здесь не требуется, так как docker run автоматически загрузит образ, если он отсутствует локально.

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

docker ps --filter status=running

Эта команда покажет только контейнеры в состоянии "running" (работающие). В списке должен отобразиться контейнер my-nginx.

Далее отфильтруем контейнеры по имени.

docker ps -a --filter name=my-nginx

Эта команда выведет все контейнеры (включая остановленные, благодаря флагу -a), имеющие имя my-nginx. Вы увидите контейнер my-nginx с указанием его статуса.

Фильтры можно комбинировать. Например, чтобы вывести работающие контейнеры с определённым именем:

docker ps --filter status=running --filter name=my-nginx

Эта команда покажет контейнер my-nginx только если он в данный момент работает.

Отображение размера контейнеров и форматирование вывода

На этом шаге вы узнаете, как отображать размер контейнеров и форматировать вывод команды docker ps. Знание размера контейнеров полезно для управления дисковым пространством.

По умолчанию docker ps не показывает размер контейнеров. Чтобы включить эту информацию, используйте флаг --size.

docker ps -a --size

Эта команда выведет список всех контейнеров (работающих и остановленных) с двумя дополнительными колонками: SIZE (размер записываемого слоя контейнера) и VIRTUAL SIZE (общий размер контейнера, включая слои образа).

Иногда стандартный формат вывода docker ps может не соответствовать вашим потребностям. Вы можете настроить формат вывода с помощью флага --format, который принимает строку шаблона Go.

Например, чтобы отобразить только ID контейнера, имя образа и статус, используйте следующую команду:

docker ps -a --format "{{.ID}}\t{{.Image}}\t{{.Status}}"

В этом шаблоне:

  • {{.ID}} — ID контейнера
  • {{.Image}} — имя образа
  • {{.Status}} — статус контейнера
  • \t — символ табуляции для разделения колонок

Вы также можете включить информацию о размере в форматированный вывод:

docker ps -a --format "{{.ID}}\t{{.Image}}\t{{.Status}}\t{{.Size}}"

Эта команда отобразит ID контейнера, образ, статус и размер. Поле {{.Size}} включает как размер записываемого слоя, так и виртуальный размер.

Экспериментируйте с различными полями шаблона, чтобы настроить вывод под свои нужды. Другие полезные поля включают {{.Names}}, {{.CreatedAt}} и {{.Ports}}.

Итоги

В этой лабораторной работе вы научились использовать команду docker ps для вывода списка Docker-контейнеров. Вы начали с отображения только работающих контейнеров с помощью docker ps, предварительно запустив простой контейнер ubuntu в detached mode (фоновом режиме). Затем вы узнали, как выводить все контейнеры, включая остановленные, добавив флаг -a к команде docker ps после остановки ранее созданного контейнера.