Загрузка изображений в докер-хаб - PullRequest
0 голосов
/ 17 декабря 2018

Я еще не совсем понимаю докер-хаб.Я получил следующий случай:

  • Я отмечаю несколько изображений для хаба

тег docker myimageA myuser / myrepo: 1

тег dockermyimageB myuser / myrepo: 1

тег docker myimageC myuser / myrepo: 1

После этого я нажимаю их с помощью docker push myuser/myrepo

Теперь при удалении всех моих локальныхизображений и повторного извлечения из моего собственного репозитория Docker будет только одна запись, когда я выполню docker images:

myuser/myrepo

Я ожидал, что смогу отправить отдельные изображения в докер-хаб.Кроме того, я могу просматривать только выдвинутый мной тег (последний, 1 или что-то еще).

Вопрос: docker push подтолкнет все изображения, помеченные для пространства имен репо?Или есть способ отправить отдельные изображения в репозиторий и вытащить их одно за другим?

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Я помню свои первые шаги в докере и хорошо помню эту небольшую борьбу.

Когда вы создаете изображение:

docker build -t <docker_hub_user_name>/<image_name>:<tag_name> /path/to/dockerfile

Это изображение зарегистрировано с тегом, который вы присвоили,В противном случае вы можете создать изображение без опции -t , и это позволит создать изображение со случайным идентификатором, который впоследствии можно будет пометить повторно.

Если вы пометите изображение:

тег docker myimageA myuser / myrepo: 1

тег docker myimageB myuser / myrepo: 1

тег docker myimageC myuser / myrepo: 1

Тег Docker работает так:

"docker tag" requires exactly 2 arguments.
See 'docker tag --help'.
Usage:  docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE

Таким образом, вы в основном используете разные изображения для пометки одного и того же изображения.Или, что то же самое, вы называете три разных изображения в одном.Вы перезаписываете три разных изображения в myuser / myrepo: 1.

Концентратор Docker использует <<strong> myuser > / myrepo: 1 для сохранения корня вашего изображения в вашей учетной записи, но в других случаях этоСегмент используется для идентификации вашего хранилища хоста.myuser / <<strong> myrepo >: 1 это имя вашего изображения, поэтому, если вы используете приложение A, B или C, имя изображения должно быть другим и myuser / myrepo: <<strong> 1 > последний элемент должен использоваться, если он используется для управления версиями того же изображения.Он обычно используется для создания версий, и есть некоторые теги, которые используются по умолчанию, например: last .Если вы используете это слово, то докер будет использовать самое последнее изображение из этого образа докера.

Итак, отвечая на ваш вопрос:

Вопрос: толкнет ли Докер все изображения, помеченные для пространства имен репо??Или есть способ отправить отдельные изображения в репозиторий и извлекать их одно за другим?

Вы должны загружать каждое изображение независимо в свою учетную запись концентратора докеров или на сервер реестра докеров.Хотя вы могли бы использовать конвейерную команду, чтобы выдвинуть все ваши изображения докера одним предложением.Невозможно отправить все ваши локальные файлы одной командой docker.

0 голосов
/ 17 декабря 2018

Только одно изображение имеет данный тег / ярлык одновременно.Когда вы запустили docker tag myimageC myuser/myrepo, изображение B потеряло тег, а docker push выдвинул только одно последнее помеченное изображение.Если вы дали другое изображение с этим тегом и добавили его, оно заменило бы то, что было ранее в Docker Hub, на то, что вы выдвинули.

Если эти изображения действительно отличаются, рекомендуется использовать их как отдельные имена например , myuser/myimageC.Также не забудьте часть тега имени изображения;Обычно изображение помечают номером версии или сведениями о сборке (например, если вы строите образы Alpine и Ubuntu для одной и той же вещи), и во многих средах по умолчанию тег ...:latest, являющийся движущейся целью, представляет проблему.

...