Введение
В этом практическом занятии (лабораторной работе) вы научитесь управлять списками манифестов Docker, которые являются важной частью создания многоархитектурных образов. Мы рассмотрим процесс создания списка манифестов путем объединения образов для разных платформ, проверки его существования с помощью команды docker manifest inspect и, наконец, продемонстрируем, как удалить список манифестов с использованием команды docker manifest rm. Эта практическая работа предоставит вам опыт работы со списками манифестов в рамках вашего рабочего процесса с Docker.
Создать список манифестов
На этом этапе мы научимся создавать список манифестов в Docker. Список манифестов представляет собой список манифестов образов, который позволяет использовать одно имя образа для обращения к образам для разных архитектур и операционных систем. Это особенно полезно при создании многоархитектурных образов.
Сначала давайте загрузим два разных образа, которые мы будем использовать для создания нашего списка манифестов. Мы будем использовать образ alpine для архитектур amd64 и arm64.
docker pull alpine:latest
docker pull --platform arm64 alpine:latest
Первая команда загружает образ alpine:latest для вашей текущей архитектуры (скорее всего, amd64). Вторая команда явно загружает образ alpine:latest для архитектуры arm64.
Теперь мы можем создать список манифестов с помощью команды docker manifest create. Синтаксис команды: docker manifest create TARGET_IMAGE SOURCE_IMAGE [SOURCE_IMAGE...]. Мы создадим список манифестов с именем my-alpine:latest, который будет включать образы alpine:latest для архитектур amd64 и arm64.
docker manifest create my-alpine:latest alpine:latest alpine:latest --amend alpine:latest --platform arm64
В этой команде:
my-alpine:latest- имя нового списка манифестов, который мы создаем.alpine:latest- первый исходный образ (для архитектуры по умолчанию).--amend alpine:latest --platform arm64добавляет образalpine:latestдля платформыarm64в список манифестов.
После выполнения этой команды вы создали список манифестов локально. Однако он еще не отправлен в реестр. Мы отправим его на следующем этапе.
Проверить существование списка манифестов
На предыдущем этапе мы создали список манифестов с именем my-alpine:latest. Теперь мы проверим, что этот список манифестов был успешно создан и существует локально.
Мы можем использовать команду docker manifest inspect для просмотра деталей списка манифестов. Эта команда выведет содержимое списка манифестов в формате JSON, если он существует.
docker manifest inspect my-alpine:latest
Если список манифестов my-alpine:latest был успешно создан, вы увидите выходные данные в формате JSON, описывающие список манифестов, включая разные образы, на которые он ссылается для различных архитектур. Если список манифестов не существует, команда вернет ошибку.
В выходных данных будут показаны сведения о списке манифестов, такие как версия схемы, тип медиа и список манифестов для каждой включенной архитектуры. Вы должны увидеть записи как для архитектуры amd64, так и для arm64, подтверждающие, что список манифестов был создан правильно с ссылками на образы для этих платформ.
Удалить список манифестов
На предыдущих этапах мы создали и проверили существование списка манифестов с именем my-alpine:latest. Теперь мы научимся удалять этот список манифестов.
Для удаления списка манифестов мы используем команду docker manifest rm, за которой следует имя списка манифестов.
docker manifest rm my-alpine:latest
Эта команда удалит локальную ссылку на список манифестов my-alpine:latest. Обратите внимание, что эта команда удаляет только сам список манифестов, а не отдельные образы, на которые ссылается список манифестов. Образы alpine:latest для архитектур amd64 и arm64, которые мы загрузили ранее, по-прежнему останутся на вашей системе.
После выполнения команды вы должны увидеть выходные данные, указывающие, что список манифестов был удален из тегов.
Проверить, что список манифестов удален
На предыдущем этапе мы удалили список манифестов с именем my-alpine:latest. Теперь мы проверим, что список манифестов был успешно удален и больше не существует локально.
Мы можем попытаться снова проверить список манифестов с помощью команды docker manifest inspect. Если список манифестов был успешно удален, эта команда должна вернуть ошибку, указывающую, что список манифестов не найден.
docker manifest inspect my-alpine:latest
При запуске этой команды после удаления списка манифестов вы должны увидеть сообщение об ошибке, похожее на no such manifest: docker.io/library/my-alpine:latest. Это подтверждает, что список манифестов был удален из вашей локальной среды Docker.
Резюме
В этом практическом занятии (лабораторной работе) мы научились создавать и управлять списками манифестов Docker. Мы начали с загрузки образов для различных архитектур, а затем использовали команду docker manifest create, чтобы объединить их в один список манифестов, показав, как создавать многоархитектурные образы.
После создания мы проверили существование списка манифестов с помощью команды docker manifest inspect. Наконец, мы научились удалять список манифестов с помощью команды docker manifest rm и подтвердили его удаление, охватив основное управление жизненным циклом списков манифестов в Docker.



