Хорошо… до этого момента мы взяли несколько официальных образов.
Внимательно посмотрите на образ nginx : nginx, который имеет тег: latest & image id de2543b9436b.
Вы можете увидеть это на официальном хабе docker: https://hub.docker.com/_/nginx.
Проверьте его теги:
Также посмотрите на это:
Здесь “mainline”, “latest”, “1.21” и т.д. означают одно и то же.
В нашей системе у нас есть образ nginx с тегом latest.
Давайте возьмем образ nginx с тегом mainline.
Если вы зайдете на docker hub, то увидите следующее:
Пока мы извлекали nginx:mainline, вы можете видеть, что несколько слоев уже существовали, а другие были извлечены. Итак, это преимущество наличия образа.
Раньше у нас был образ nginx, и поэтому существовало мало слоев. Теперь, когда мы вытащили тег mainline, нам просто пришлось вытащить несколько слоев.
Теперь давайте проверим изображения
Проверьте mainline tag & последний тег имеет тот же размер 142mb.
Теперь создадим образ в docker hub, используя официальный образ.
docker image tag <image to copy> <targeted image to be created>
тег используется для использования новейшего тега этого образа копии.
Перед этим войдите в систему с помощью docker hub. Таким образом, вы сможете создать образ и отправить его в docker hub.
docker login
Затем укажите ваше имя пользователя и пароль.
Теперь создадим наш образ
Мы также проверили наш только что созданный образ.
Поскольку наш образ не будет официальным, мы использовали формат “имя_пользователя/имя_образа”.
Проверьте внимательно, образ nginx & mitul3737/nginx имеет одинаковый ID образа: de2543b9436b
также у них одинаковый тег: latest
Это потому, что mitul373737/nginx только что скопировал образ nginx, и мы сказали ему установить тот же тег (latest).
Теперь, давайте запустим его в наш профиль dockerhub
docker image push < your image>
Вы можете видеть, что в docker hub есть вот это.
Он имеет тег latest.
Теперь давайте изменим тег и добавим поверх него еще один слой нашего изображения.
docker image tag <image to copy> <image where to copy>:<your_tag>
Мы скопировали наш образ mitul3737/nginx и использовали его для создания другого образа с тегом “testing”.
Вы можете видеть, что nginx, mitul373737/nginx имеют одинаковый идентификатор изображения, но mitul373737/nginx имеет последний тег & testing. Это означает, что все они являются одним и тем же изображением. Просто их копии с разными именами.
Теперь давайте запустим его в наш концентратор docker.
Посмотрите внимательно, слои существуют. Это означает, что они не загружены повторно. При копировании из mitul373737/nginx в mitul373737/nginx:testing мы скопировали все и просто дали им новый тег. Таким образом, не было добавлено никаких новых слоев, и нам нечего было загружать.
В хабе docker:
Вы можете видеть, что под образом mitul3737/nginx добавлены слои. Таким образом, вы можете использовать последнюю версию с помощью команды mitul3737/nginx:latest и использовать тестовую версию с помощью команды
mitul3737/ngnx:testing