Как использовать команду docker compose images для вывода списка образов

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

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

Введение

В этой лабораторной работе вы научитесь использовать команду docker compose images для вывода списка Docker-образов, используемых сервисами, определёнными в файле docker-compose.yml. Мы начнём с подготовки простого файла docker-compose.yml, а затем воспользуемся командой docker compose up для запуска сервисов.

Далее мы рассмотрим различные способы вывода списка образов. Вы узнаете, как вывести все образы, используемые созданными контейнерами, как отобразить только идентификаторы образов с помощью опции quiet, а также как получить список образов в формате JSON для удобного парсинга. Этот практический опыт даст вам полезные навыки для управления образами в ваших проектах Docker Compose.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/start("Start Container") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/ImageOperationsGroup -.-> docker/images("List Images") subgraph Lab Skills docker/ps -.-> lab-555080{{"Как использовать команду docker compose images для вывода списка образов"}} docker/start -.-> lab-555080{{"Как использовать команду docker compose images для вывода списка образов"}} docker/pull -.-> lab-555080{{"Как использовать команду docker compose images для вывода списка образов"}} docker/images -.-> lab-555080{{"Как использовать команду docker compose images для вывода списка образов"}} end

Подготовка простого файла docker-compose.yml

На этом шаге мы подготовим простой файл docker-compose.yml. Перед началом работы необходимо установить Docker Compose. Docker Compose — это инструмент для определения и запуска многоконтейнерных Docker-приложений. С помощью Compose вы используете YAML-файл для настройки сервисов вашего приложения, а затем одной командой создаёте и запускаете все сервисы из конфигурации.

Сначала установим Docker Compose. Загрузим бинарный файл Docker Compose и сделаем его исполняемым.

sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Теперь проверим установку, посмотрев версию Docker Compose.

docker-compose --version

Вы должны увидеть вывод, похожий на Docker Compose version v2.20.2.

Далее создадим директорию для нашего проекта и перейдём в неё.

mkdir ~/project/my-docker-app
cd ~/project/my-docker-app

Теперь создадим файл docker-compose.yml с помощью редактора nano. Этот файл будет определять простой веб-сервис с использованием образа nginx.

nano docker-compose.yml

В редакторе nano вставим следующее содержимое:

version: "3.8"
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"

Разберём этот файл docker-compose.yml:

  • version: '3.8' — указывает версию формата Compose-файла.
  • services: — определяет сервисы нашего приложения.
  • web: — имя нашего сервиса.
  • image: nginx:latest — указывает Docker-образ для этого сервиса. В данном случае используется последняя версия образа nginx.
  • ports: — сопоставляет порты между хостом и контейнером. "80:80" перенаправляет порт 80 на хосте на порт 80 в контейнере.

Сохраним файл, нажав Ctrl + X, затем Y и Enter.

Перед запуском сервиса необходимо загрузить образ nginx:latest.

docker pull nginx:latest

Эта команда загружает образ nginx:latest из Docker Hub.

Запуск сервисов, определённых в файле docker-compose.yml

На этом шаге мы запустим сервисы, определённые в нашем файле docker-compose.yml. Для этого мы воспользуемся командой docker-compose up, которая соберёт, создаст и запустит сервисы.

Убедитесь, что вы находитесь в директории ~/project/my-docker-app, где был создан файл docker-compose.yml.

cd ~/project/my-docker-app

Теперь выполните следующую команду для запуска сервисов в фоновом режиме (detached mode):

docker-compose up -d

Флаг -d запускает контейнеры в фоновом режиме, что означает их работу без блокировки вашего терминала.

Вы должны увидеть вывод, указывающий на создание и запуск сервиса web.

Чтобы проверить, что контейнер запущен, используйте команду docker ps:

docker ps

В списке должен отображаться контейнер с именем my-docker-app-web-1 (или аналогичным, в зависимости от имени проекта), использующий образ nginx, со статусом Up.

Также мы можем проверить доступность веб-сервера, используя curl для обращения к localhost на порту 80:

curl http://localhost:80

В терминале вы должны увидеть HTML-код стандартной приветственной страницы Nginx, что подтверждает корректную работу веб-сервера.

Просмотр образов, используемых созданными контейнерами

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

Выполните следующую команду для отображения всех образов:

docker images

Вы должны увидеть таблицу с информацией об образах, включая столбцы REPOSITORY, TAG, IMAGE ID, CREATED и SIZE. В списке должен присутствовать образ nginx.

Вывод показывает образы, которые были загружены или собраны в вашей системе. Образ nginx был загружен на предыдущем шаге и сейчас используется запущенным контейнером.

Вывод только ID образов с использованием quiet-опции

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

Опция quiet активируется с помощью флага -q.

Выполните следующую команду для вывода только идентификаторов образов:

docker images -q

Вы увидите список ID образов, по одному на строку. Этот вывод значительно компактнее полного вывода команды docker images.

Данная опция особенно полезна, когда вам нужно программно обработать список образов, например, для удаления устаревших образов.

Вывод списка образов в формате JSON

На этом шаге мы научимся выводить список Docker-образов в формате JSON. Это полезно, когда вам нужно программно обрабатывать вывод с помощью инструментов вроде jq.

Мы можем использовать опцию --format с командой docker images для указания формата вывода. Чтобы получить вывод в JSON-формате, используем ключевое слово json.

Выполните следующую команду для вывода списка образов в JSON-формате:

docker images --format json

Вы увидите вывод в JSON-формате — структурированном представлении информации об образах. Каждый образ будет представлен как JSON-объект внутри JSON-массива.

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

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

Чтобы остановить контейнер, вернитесь в директорию ~/project/my-docker-app и выполните:

cd ~/project/my-docker-app
docker-compose down

Эта команда останавливает и удаляет контейнеры, сети и тома, созданные командой docker-compose up.

Для удаления директории проекта используйте команду rm:

cd ~/project
rm -rf my-docker-app

Итоги

В этой лабораторной работе мы изучили, как использовать команду docker compose images для вывода списка образов, используемых сервисами, определёнными в файле docker-compose.yml. Мы начали с подготовки простого файла docker-compose.yml, определяющего веб-сервис на основе образа nginx, включая установку Docker Compose и создание необходимой структуры файлов.

Затем мы запустили сервисы, определённые в файле docker-compose.yml. В завершение мы рассмотрели различные способы вывода списка образов, используемых созданными контейнерами, включая вывод всех деталей образов, вывод только ID образов с использованием quiet-опции и вывод образов в JSON-формате.