Введение
В этой лабораторной работе вы научитесь использовать команду docker buildx history ls для управления и просмотра записей сборки Docker. Мы начнём с создания простого Docker-образа с помощью docker buildx build, что автоматически создаст запись о сборке.
После сборки образа вы изучите, как вывести список всех записей сборки с помощью docker buildx history ls. Затем вы узнаете, как фильтровать эти записи по их статусу с использованием опции --filter, а также как настраивать формат вывода с помощью опции --format. В завершение вы обнаружите, как выводить только локальные записи сборки, используя опцию --local. Эта лабораторная работа даст вам практические навыки для отслеживания и анализа истории сборок Docker.
Создание простого образа для формирования записи сборки
На этом шаге мы соберём простой Docker-образ. Сборка образа с помощью Docker Buildx автоматически создаёт запись о сборке. Запись сборки содержит информацию о процессе, такую как аргументы сборки, контекст сборки и результирующий образ.
Сначала создадим простой Dockerfile в директории ~/project. Этот Dockerfile будет создавать образ на основе ubuntu с установленным curl.
cd ~/project
nano Dockerfile
Добавим следующее содержимое в Dockerfile:
FROM ubuntu:latest
RUN apt-get update && apt-get install -y curl
Сохраним и закроем файл.
Теперь соберём образ с помощью docker buildx build, присвоив ему тег my-ubuntu-curl.
docker buildx build -t my-ubuntu-curl .
Эта команда соберёт образ на основе Dockerfile в текущей директории (.) и присвоит ему тег my-ubuntu-curl. Docker Buildx автоматически создаст запись о данной сборке.
После завершения сборки вы увидите вывод, отображающий процесс сборки и успешное создание образа.
Вывод всех записей сборки с помощью docker buildx history ls
На этом шаге мы научимся выводить список всех записей сборки с помощью команды docker buildx history ls. Как мы видели ранее, сборка образа через docker buildx build автоматически создаёт запись о сборке. Эти записи сохраняются и могут быть просмотрены для отслеживания истории сборок.
Чтобы вывести список всех записей сборки, выполните следующую команду:
docker buildx history ls
Эта команда отобразит таблицу с информацией о каждой записи сборки. В выводе обычно указываются:
- ID сборки
- Используемый builder (сборщик)
- Статус сборки
- Длительность сборки
- Время создания сборки
В выводе вы должны увидеть как минимум одну запись, соответствующую образу, который мы собрали на предыдущем шаге (my-ubuntu-curl).
Команда docker buildx history ls полезна для получения общего представления о вашей активности сборки и идентификации конкретных сборок.
Фильтрация записей сборки по статусу с помощью опции --filter
На этом шаге мы научимся фильтровать записи сборки по их статусу, используя опцию --filter с командой docker buildx history ls. Это полезно, когда нужно просмотреть только сборки с определённым статусом, например, успешно завершённые или неудачные.
Опция --filter принимает пару ключ-значение в формате ключ=значение. Для фильтрации по статусу мы используем ключ status. Возможные значения статуса включают complete, running, failed и другие.
Поскольку сборка, выполненная на первом шаге, была успешной, её статус должен быть complete. Отфильтруем историю сборок, чтобы показать только завершённые сборки:
docker buildx history ls --filter status=complete
Эта команда отобразит только записи сборок со статусом complete. В выводе вы должны увидеть запись для образа my-ubuntu-curl.
Если бы у вас были неудачные сборки, их можно было бы отфильтровать с помощью --filter status=failed.
Форматирование вывода записей сборки с помощью опции --format
На этом шаге мы научимся форматировать вывод команды docker buildx history ls с использованием опции --format. Это позволяет настраивать отображаемую информацию и формат её представления.
Опция --format принимает строку шаблона Go. Вы можете использовать плейсхолдеры, такие как .ID, .Builder, .Status, .Duration и .CreatedAt для включения конкретной информации из записи сборки.
Давайте отформатируем вывод, чтобы показать только ID сборки и её статус, разделённые двоеточием:
docker buildx history ls --format "{{.ID}}: {{.Status}}"
Эта команда выведет каждую запись сборки на новой строке, отображая ID сборки, за которым следует двоеточие и её статус.
Вы можете создавать более сложные форматы, комбинируя различные плейсхолдеры и текст. Например, для отображения сборщика (builder) и длительности:
docker buildx history ls --format "Builder: {{.Builder}}, Duration: {{.Duration}}"
Экспериментируйте с различными строками формата, чтобы настроить вывод под ваши потребности.
Вывод локальных записей сборки с помощью опции --local
На этом шаге мы рассмотрим использование опции --local с командой docker buildx history ls. По умолчанию docker buildx history ls выводит записи сборки со всех сборщиков (builders). Опция --local ограничивает вывод, показывая только записи сборки текущего экземпляра сборщика.
Для вывода только локальных записей сборки используйте следующую команду:
docker buildx history ls --local
В данной лабораторной среде, поскольку мы использовали только сборщик по умолчанию, вывод команд docker buildx history ls и docker buildx history ls --local скорее всего будет одинаковым. Однако в средах с несколькими сборщиками эта опция полезна для просмотра истории конкретного сборщика.
На этом завершается наше знакомство с выводом и фильтрацией истории сборок Docker Buildx. Теперь вы знаете, как просматривать записи сборок, фильтровать их по статусу, форматировать вывод и выводить записи локального сборщика.
Резюме
В этой лабораторной работе мы изучили, как использовать команду docker buildx history ls для управления записями сборки. Мы начали с создания простого Docker-образа с помощью docker buildx build, что автоматически создало запись о сборке. Затем мы использовали docker buildx history ls для вывода всех доступных записей сборки, наблюдая информацию, связанную с каждой сборкой.
Мы также исследовали возможности команды docker buildx history ls, научившись фильтровать записи сборки по их статусу с помощью опции --filter и настраивать формат вывода с помощью опции --format. В завершение мы узнали, как выводить только локальные записи сборки с помощью опции --local, получив полное представление об управлении и анализе истории сборок Docker Buildx.



