Docker public registry push терпит неудачу: репозиторий не существует

Я пытаюсь подтолкнуть мое изображение docker в публичный реестр docker:

$ 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 

тем не менее, я уже создал репозиторий (viewable здесь). И я также попытался нажать на имена репозиториев, которые я еще не создал (первая попытка в приведенном выше примере).

Я думаю, что (len: 0) имеет к этому какое-то отношение, но я не могу его google. Также я изначально создал изображение из dockerfile как:

docker build -t binarybana/fedora-dev .

спасибо.

5 ответов


всегда создавайте свой образ с помощью "username"и " tag"

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.

моя путаница возникла из-за непонимания определения Докером "репозитория".

репозиторий-это набор изображений Docker. Репозиторий можно совместно использовать, нажав его на сервер реестра. Различные изображения в репозитории могут быть помечены с помощью тегов.

когда Докер говорит, что репозиторий не не существует, это означает, что нет изображения, что он может найти локально, то есть тегом С registry.host/user-name/image-name комбинации.

Примечание:Docker Hub реестр по умолчанию, так что эта часть может быть опущена, если вы нажимаете там.

шаги для устранения этой проблемы:

  1. дважды проверьте, какие изображения у вас есть в местном масштабе.

    $ docker images
    REPOSITORY              TAG     IMAGE ID      CREATED     VIRTUAL SIZE
    gcr.io/my-proj/my-typo  v1      40c2ae2dedb8  2 days ago  427.8 MB
    
  2. если есть опечатка, вы можете запустить docker tag команда, чтобы исправить это.

    $ docker tag gcr.io/my-proj/my-typo:v1 gcr.io/my-proj/my-cntr:v1
    
  3. теперь вы должны иметь возможность нажать изображение, используя полное имя, включая тег.

    $ docker push gcr.io/my-proj/my-cntr:v1
    

    Примечание:gcloud docker -- push вместо docker push если вы нажимаете на реестр контейнеров Google.


Если вы используете Amazon AWS, перед тем как вы сможете переместить изображения Docker в Amazon ECR, вам необходимо создать репозиторий для их хранения. Репозитории Amazon ECR можно создавать с помощью консоли управления AWS или AWS CLI и AWS SDK.

для создания репозитория

1.) Откройте консоль Amazon ECS по адресуhttps://console.aws.amazon.com/ecs/.

2.) На панели навигации выберите регион для создания в репозитории.

3.) На странице репозитории выберите создать репозиторий.

4.) В поле имя репозитория введите уникальное имя репозитория и выберите следующий шаг.

5.) Теперь вы должны иметь возможность нажать на AWS repo!


вам нужно использовать полное имя изображения. Когда вы не указываете тег во время построения, это latest, Так что вы должны сказать

docker push binarybana/fedora-dev:latest