Как добавлять, заменять и удалять теги образов Docker — CloudSavvy IT

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

Теги также могут использоваться для описания других характеристик изображения, таких как идентификация ключевой зависимости, когда предлагается несколько вариантов. Нередко можно найти поставщиков изображений, предлагающих такой тег:

пример-изображения:1.1.0-apache пример-изображения:1.1.0-nginx пример-изображения:1.2.0-apache пример-изображения:1.2.0-nginx

Эта схема тегов позволяет выбирать между различными версиями образа, предлагая в качестве основы образ Apache или NGINX.

Вы можете добавлять свои собственные теги к любому изображению, которое вы создаете или извлекаете. Локальные теги позволяют быстро идентифицировать определенные изображения в будущем. В этом руководстве мы покажем, как управлять тегами изображений с помощью интерфейса командной строки Docker.

Теги добавляются к изображениям с помощью команды docker tag. Теги также можно прикреплять, когда вы создаете образ с помощью сборки docker, передав флаг -t.

Команда tag принимает два аргумента: существующий тег, идентифицирующий изображение, и новый «целевой» тег для назначения этому изображению:

# тег docker <исходное изображение> <новый тег> тег docker example-image:1.1.0 example-image:1.1.0-apache

Оба тега теперь будут ссылаться на одно и то же изображение, поэтому вы можете начать использовать их взаимозаменяемо. Однако запуск docker pull example-image:1.1.0 не повлияет на тег 1.1.0-apache. Ссылка на изображение тега не обновляется, если вы не включили его вручную в команду CLI.

Единственным исключением из этого правила является часто неправильно понимаемый последний тег. Когда вы извлекаете «голый» образ без тега, такой как docker pull example-image, Docker неявно использует last.

Изображения без тегов

Команда docker tag будет принимать идентификаторы изображений в качестве ссылки на источник вместо существующего тега. Если вы получили изображение без тегов, запустите команду docker images, чтобы найти его идентификатор, а затем используйте тег docker для назначения нового тега:

тег докера 0e3e06b48755 пример изображения: последний

При извлечении новой версии тега возможно наличие изображений без тегов:

# уже есть example-image:latest docker pull example-image:latest

Первоначальная цель тега example-image:latest все еще существует в вашей системе, но теперь не имеет тегов. Пул загрузил новые данные изображения и переназначил последний тег для ссылки на них.

Одна из ситуаций, когда вам нужно добавить новый тег, — это передача изображений между реестрами. URL-адрес реестра является частью тега. Добавьте новый тег, который включает реестр, в который вы хотите отправить данные, а затем используйте Docker Push, чтобы загрузить его:

пример тега docker-image: последний реестр.

Отправка пустого тега без компонента URL-адреса отправит данные изображения в Docker Hub. Следовательно, вы должны добавить тег с именем хоста вашего сервера и необязательным номером порта, когда вы взаимодействуете с частным реестром.

Команда docker tag автоматически заменит ссылку на тег, если в качестве цели используется существующий тег:

тег docker first-image:последняя демонстрация тег docker second-image:последняя демонстрация

Тег demo теперь ссылается на второе изображение и не может использоваться для ссылки на первое изображение. Вы по-прежнему можете взаимодействовать с первым изображением, используя его оставшийся тег first-image:latest. Второе изображение можно выбрать с помощью second-image:latest или demo.

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

# Собрать и отправить v1 docker build -t example-image:v1 . docker push example-image:v1 # v1 теперь относится к другим данным образа # Это подходит для локального использования (теги в реестре # не зависят от ваших локальных тегов). docker build -t пример-изображение:v1 . # Не делайте этого — теперь тег в реестре # также был изменен, что # может негативно повлиять на существующих пользователей. docker push пример изображения: v1

Вы можете удалить теги с изображений, загруженных на ваш компьютер. Используйте команду docker rmi, указав тег, который вы хотите удалить:

docker rmi пример изображения: 1.1.0-apache

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

Удаление тега действует только локально, даже если вы ссылаетесь на тег, содержащий URL-адрес реестра:

# Не удаляет тег из реестра! реестр докеров rmi.example.com/example-image:latest

В настоящее время вы не можете удалить определенный тег из реестра. Это соответствует принципу неизменяемости тегов: после того, как вы отправили контент, он может использоваться в качестве зависимости нижестоящими потребителями, поэтому Registry API опускает конечную точку удаления тега. Однако многие сторонние реализации реестра предоставляют эквивалентный механизм; стоит проверить вашу документацию, если у вас есть веская причина для удаления проталкиваемого тега.

Резюме

Теги используются для маркировки образов Docker ключевой отличительной информацией, такой как их версия сборки и включенные зависимости. С тегами намного проще работать, чем с идентификаторами SHA изображений, которые вы можете просматривать с помощью образов Docker. Теги также являются основным механизмом взаимодействия с изображениями в удаленных реестрах.

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

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован.