Введение
В этой лабораторной работе вы научитесь управлять записями сборок с помощью команды docker buildx history rm. Записи сборок полезны для отслеживания процессов сборки и их результатов.
Вы начнёте с создания записи сборки с помощью docker buildx build и сохранения её метаданных. Затем вы узнаете, как вывести список существующих записей сборок с помощью docker buildx ls для просмотра их деталей. Наконец, вы попрактикуетесь в удалении конкретных записей сборок и очистке всех записей с помощью команды docker buildx history rm.
Создание записи сборки
На этом шаге вы узнаете, как создать запись сборки с помощью команды docker buildx build. Записи сборки полезны для отслеживания результатов сборок, включая контекст сборки, аргументы сборки и идентификатор полученного образа.
Сначала создадим простой Dockerfile, который будем использовать для сборки. Перейдите в директорию вашего проекта и создайте файл с именем Dockerfile со следующим содержимым:
FROM alpine
CMD ["echo", "Hello, Docker!"]
Этот Dockerfile очень прост. Он использует базовый образ alpine и определяет команду для вывода сообщения "Hello, Docker!".
Теперь соберем образ из этого Dockerfile и создадим запись сборки. Мы используем команду docker buildx build с флагом --metadata-file, чтобы сохранить запись сборки в файл.
docker buildx build . --metadata-file build-record.json -t my-hello-image
В этой команде:
docker buildx build .указывает Docker собрать образ из Dockerfile в текущей директории--metadata-file build-record.jsonуказывает, что запись сборки должна быть сохранена в файлbuild-record.json-t my-hello-imageприсваивает полученному образу имяmy-hello-image
После выполнения команды вы увидите вывод, отображающий процесс сборки. В текущей директории будет создан файл build-record.json. Этот файл содержит запись сборки в формате JSON.
Вы можете просмотреть содержимое файла build-record.json с помощью команды cat:
cat build-record.json
Это отобразит JSON-содержимое записи сборки, включающее информацию о сборке.
Просмотр списка записей сборки
На этом шаге вы узнаете, как вывести список существующих записей сборки с помощью команды docker buildx ls. Эта команда позволяет просмотреть все созданные записи сборки.
Для вывода списка записей сборки выполните следующую команду:
docker buildx ls
Команда отобразит таблицу с информацией о доступных записях сборки. В выводе обычно указывается имя сборщика (builder), используемый драйвер и статус.
Вы увидите запись для сборщика по умолчанию, который используется при выполнении docker buildx build. Запись сборки, созданная на предыдущем шаге, связана с этим сборщиком.
Команда docker buildx ls полезна для получения общего представления о ваших средах сборки и связанных с ними записях сборки.
Удаление конкретной записи сборки
На этом шаге вы узнаете, как удалить конкретную запись сборки с помощью команды docker buildx prune. Это полезно для очистки отдельных записей сборки, которые больше не нужны.
Для удаления конкретной записи сборки необходимо определить её ID. Вы можете найти идентификатор записи сборки в файле build-record.json, созданном на первом шаге. Откройте файл с помощью cat:
cat build-record.json
Найдите раздел "BuildRecord" в JSON-выводе. Внутри этого раздела вы найдёте поле "ID". Скопируйте значение этого ID - это будет длинная строка символов.
Теперь используйте команду docker buildx prune с флагом --keep-storage и ID записи сборки для удаления конкретной записи. Замените <BUILD_RECORD_ID> на фактический ID, который вы скопировали.
docker buildx prune --keep-storage <BUILD_RECORD_ID>
Флаг --keep-storage используется здесь для указания, что мы удаляем записи сборки, а не кеш сборки.
После выполнения команды вы увидите подтверждение об удалении записи сборки.
Чтобы убедиться, что запись сборки удалена, вы можете снова вывести список записей сборки:
docker buildx ls
Удалённая запись сборки больше не должна отображаться в списке.
Удаление всех записей сборки
На этом шаге вы узнаете, как удалить все записи сборки с помощью команды docker buildx prune с флагом --all. Это удобный способ очистить все записи сборки за один раз.
Для удаления всех записей сборки выполните следующую команду:
docker buildx prune --all --keep-storage --force
В этой команде:
docker buildx prune- команда для удаления данных, связанных со сборкой--allуказывает, что должны быть удалены все записи сборки--keep-storageозначает, что мы удаляем записи сборки, а не кеш сборки--forceпропускает запрос подтверждения, что полезно для скриптов или в средах, где взаимодействие невозможно
После выполнения команды вы увидите вывод, подтверждающий удаление записей сборки.
Чтобы убедиться, что все записи сборки удалены, вы можете снова вывести их список:
docker buildx ls
Теперь вы должны видеть только запись сборщика по умолчанию, без каких-либо конкретных записей сборки под ним.
На этом лабораторная работа по управлению записями сборки Docker завершена. Вы научились создавать, просматривать и удалять записи сборки.
Резюме
В этой лабораторной работе вы научились управлять записями сборки Docker с помощью docker buildx. Вы начали с создания простого Dockerfile, затем использовали команду docker buildx build с флагом --metadata-file для сборки образа и генерации записи сборки, сохранив её в JSON-файл. Далее вы узнали, как просматривать существующие записи сборки с помощью команды docker buildx ls для получения информации о ваших сборках.
Лабораторная работа также охватила удаление конкретных записей сборки с помощью docker buildx history rm <record_id> и массовое удаление всех записей сборки командой docker buildx history rm --all. Эти шаги демонстрируют управление жизненным циклом записей сборки в Docker Buildx.



