Как использовать команду docker buildx history rm для удаления записей сборки

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

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

Введение

В этой лабораторной работе вы научитесь управлять записями сборок с помощью команды docker buildx history rm. Записи сборок полезны для отслеживания процессов сборки и их результатов.

Вы начнёте с создания записи сборки с помощью docker buildx build и сохранения её метаданных. Затем вы узнаете, как вывести список существующих записей сборок с помощью docker buildx ls для просмотра их деталей. Наконец, вы попрактикуетесь в удалении конкретных записей сборок и очистке всех записей с помощью команды docker buildx history rm.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker(("Docker")) -.-> docker/DockerfileGroup(["Dockerfile"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/SystemManagementGroup -.-> docker/prune("Remove Unused Docker Objects") docker/DockerfileGroup -.-> docker/build("Build Image from Dockerfile") subgraph Lab Skills docker/ls -.-> lab-555055{{"Как использовать команду docker buildx history rm для удаления записей сборки"}} docker/prune -.-> lab-555055{{"Как использовать команду docker buildx history rm для удаления записей сборки"}} docker/build -.-> lab-555055{{"Как использовать команду docker buildx history rm для удаления записей сборки"}} end

Создание записи сборки

На этом шаге вы узнаете, как создать запись сборки с помощью команды 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.