Запись образа в поток для определенной платформы
На этом этапе вы узнаете, как "записать" образ в поток для определенной платформы. В терминологии Docker это обычно делается путем присвоения существующему образу нового тега (tag), который включает в себя желаемый поток и, возможно, информацию о платформе. Присвоение тега образу по сути создает новую ссылку на существующий слой образа, позволяя ссылаться на один и тот же образ с другим именем и тегом.
Базовая команда для присвоения тега образу - это docker tag
. Синтаксис выглядит следующим образом:
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
SOURCE_IMAGE[:TAG]
: Это имя и необязательный тег существующего образа, которому вы хотите присвоить новый тег.
TARGET_IMAGE[:TAG]
: Это новое имя и необязательный тег, которые вы хотите присвоить образу. Часть TARGET_IMAGE
представляет имя потока.
Возьмем образ ubuntu
, который мы скачали на предыдущем этапе. Мы присвоим ему новый тег с именем потока, например, myubuntu
.
Сначала проверим существующий образ ubuntu
и его идентификатор (ID):
docker images ubuntu
Вы увидите вывод, похожий на этот, обратите внимание на IMAGE ID
:
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest d621e9f15c2f 2 weeks ago 72.8MB
Теперь присвоим тег образу ubuntu:latest
с новым именем потока myubuntu
и тегом v1.0
:
docker tag ubuntu:latest myubuntu:v1.0
Если команда выполнится успешно, она не выдаст много вывода. Она просто создает новый тег.
Теперь перечислим образы еще раз, чтобы увидеть новый образ с присвоенным тегом:
docker images
Теперь вы должны увидеть как исходный образ ubuntu:latest
, так и новый образ myubuntu:v1.0
, оба ссылающиеся на один и тот же IMAGE ID
:
REPOSITORY TAG IMAGE ID CREATED SIZE
myubuntu v1.0 d621e9f15c2f 2 weeks ago 72.8MB
ubuntu latest d621e9f15c2f 2 weeks ago 72.8MB
hello-world latest d2c94e258dcb 2 months ago 13.3kB
Обратите внимание, что myubuntu:v1.0
имеет тот же IMAGE ID
, что и ubuntu:latest
. Это подтверждает, что myubuntu:v1.0
- это просто новая ссылка на те же базовые данные образа.
Хотя команда docker tag
сама по себе не обрабатывает платформы явно в процессе присвоения тега, сам образ может быть собран для определенной платформы. Когда вы скачиваете образ, Docker обычно скачивает образ для архитектуры вашей системы. Если вам нужно работать с образами для разных платформ, вы обычно используете инструменты, такие как docker buildx
, чтобы собрать многоплатформенные образы или указывать платформу во время операции скачивания (например, docker pull --platform linux/amd64 ubuntu
). Однако для "записи" существующего образа в поток команда docker tag
является стандартным способом создания новой ссылки на этот образ в рамках другого имени потока.