Ответ 1
Всегда создавайте свое изображение с помощью "имени пользователя" и "тега"
docker build -t <username>/dev-fedora:latest .
После сборки нажмите изображение
docker push <username>/dev-fedora:latest
Я пытаюсь подтолкнуть изображение докеры к публичному реестру докеров:
$ docker login
Username (binarybana):
WARNING: login credentials saved in /home/jknight/.dockercfg.
Login Succeeded
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
binarybana/dev-fedora latest 10c7881fbaca 24 hours ago 1.148 GB
binarybana/fedoradev latest 10c7881fbaca 24 hours ago 1.148 GB
binarybana/fedora-dev latest 10c7881fbaca 24 hours ago 1.148 GB
<none> <none> b44397dc4c99 24 hours ago 1.148 GB
<none> <none> a98c27ba4738 24 hours ago 1.141 GB
<none> <none> 775c74a34add 24 hours ago 1.141 GB
<none> <none> 2be2491d2354 24 hours ago 1.141 GB
docker.io/fedora 21 93be8052dfb8 7 days ago 241.3 MB
$ docker push binarybana/dev-fedora
Do you really want to push to public registry? [Y/n]: Y
The push refers to a repository [docker.io/binarybana/dev-fedora] (len: 0)
FATA[0001] Repository does not exist: docker.io/binarybana/dev-fedora
$ docker push binarybana/fedora-dev
Do you really want to push to public registry? [Y/n]: Y
The push refers to a repository [docker.io/binarybana/fedora-dev] (len: 0)
FATA[0002] Repository does not exist: docker.io/binarybana/fedora-dev
Тем не менее, я уже создал репозиторий (видимый здесь). И я также попытался нажать на имена репозитория, которые я еще не создал (первая попытка в примере выше).
Я думаю, что (len: 0) имеет к этому какое-то отношение, но я не могу это сделать. Также я изначально создал изображение из файла docker как:
docker build -t binarybana/fedora-dev .
Спасибо.
Всегда создавайте свое изображение с помощью "имени пользователя" и "тега"
docker build -t <username>/dev-fedora:latest .
После сборки нажмите изображение
docker push <username>/dev-fedora:latest
Если вы используете docker.io(dockerhub repo), вам нужно пометить его, включая имя docker.io.
docker tag ${image_id} docker.io/${login_name}/${image_name}
а затем
docker push docker.io/${login_name}/${image_name} is OK
Я также столкнулся с этой ошибкой Repository does not exist: gcr.io/my-project-id/my-container
при попытке нажать изображение Google Container Registry.
Моя путаница возникла из-за непонимания определения Docker "репозитория".
Репозиторий - это набор изображений Docker. Репозиторий можно разделить, нажав его на сервер реестра. Различные изображения в репозитории могут быть помечены с помощью тегов.
Когда Docker говорит, что репозиторий не существует, это означает, что нет изображения, которое он может найти локально, tagged с этим registry.host/user-name/image-name
.
Примечание. Docker Hub является по умолчанию, так что часть может быть опущена, если вы нажимаете туда.
Шаги по устранению этой проблемы:
Дважды проверьте, какие изображения у вас доступны локально.
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
gcr.io/my-proj/my-typo v1 40c2ae2dedb8 2 days ago 427.8 MB
Если есть опечатка, вы можете запустить команду docker tag
, чтобы исправить ее.
$ docker tag gcr.io/my-proj/my-typo:v1 gcr.io/my-proj/my-cntr:v1
Теперь вы можете нажать изображение, используя полное имя, включая тег.
$ docker push gcr.io/my-proj/my-cntr:v1
Примечание. Используйте gcloud docker -- push
вместо docker push
, если вы переходите в реестр Google Container.
Если вы используете Amazon AWS, прежде чем вы сможете подтолкнуть изображения Docker к Amazon ECR, вам необходимо создать хранилище для их хранения. Вы можете создать репозитории Amazon ECR с помощью консоли управления AWS или с помощью CLI AWS и AWS SDK.
Чтобы создать репозиторий
1.) Откройте консоль ECS Amazon в https://console.aws.amazon.com/ecs/.
2.) На панели навигации выберите регион для создания своего репозитория.
3.) На странице "Хранилища" выберите "Создать репозиторий".
4.) Для имени репозитория введите уникальное имя для своего репозитория и выберите "Следующий шаг".
5.) Теперь вы можете нажать на свой репортаж AWS!
Вам нужно использовать полное имя изображения. Когда вы не укажете тег при построении, он latest
, поэтому вы должны сказать
docker push binarybana/fedora-dev:latest