web-dev-qa-db-fra.com

L'enregistrement public de Docker échoue: le référentiel n'existe pas

J'essaie d'insérer mon image de menu fixe dans le registre de menu public:

$ 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 

Pourtant, j'ai déjà créé le référentiel (visible ici ). Et j'ai aussi essayé de pousser vers des noms de référentiels que je n'ai pas encore créés (le premier essai dans l'exemple ci-dessus).

Je pense que le (len: 0) a quelque chose à voir avec cela, mais je ne peux pas le rechercher dans Google. De plus, j'ai initialement créé l'image à partir d'un fichier de docker en tant que:

docker build -t binarybana/Fedora-dev .

Merci.

53
JKnight

Construisez toujours votre image avec "nom d'utilisateur" et "tag"

docker build -t <username>/dev-Fedora:latest .

Après la construction Poussez l'image

docker Push <username>/dev-Fedora:latest

120
Mahattam

si vous utilisez docker.io (rapport dockerhub), vous devez le baliser, y compris le nom docker.io.

docker tag ${image_id} docker.io/${login_name}/${image_name} 

puis

docker Push docker.io/${login_name}/${image_name} is OK
20
Santhosh Gandhe

Si vous utilisez Amazon AWS, vous devez créer un référentiel avant de pouvoir transférer vos images Docker vers Amazon ECR. Vous pouvez créer des référentiels Amazon ECR avec AWS Management Console ou AWS CLI et AWS SDK.

Pour créer un référentiel

1.) Ouvrez la console Amazon ECS à l'adresse https://console.aws.Amazon.com/ecs/ .

2.) Dans la barre de navigation, choisissez la région dans laquelle créer votre référentiel.

3.) Sur la page Référentiels, choisissez Créer un référentiel.

4.) Pour Nom du référentiel, entrez un nom unique pour votre référentiel et choisissez Étape suivante.

5.) Maintenant, vous devriez être capable de pousser vers votre repo AWS!

8
GreensterRox

J'ai aussi rencontré cette erreur Repository does not exist: gcr.io/my-project-id/my-container lors de la tentative d'envoi d'une image à Google Container Registry .

Ma confusion venait d'une incompréhension de la définition de "référentiel" de Docker.

Un référentiel est un ensemble d'images Docker. Un référentiel peut être partagé en le poussant sur un serveur de registre. Les différentes images du référentiel peuvent être étiquetées à l'aide de balises.

Lorsque Docker dit qu’un référentiel n’existe pas, cela signifie qu’il n’ya pas d’image qu’il puisse trouver localement qui soit tagged avec ce registry.Host/user-name/image-name combinaison.

Remarque: le registre Docker Hub est le valeur par défaut , afin que cette partie puisse être omise si vous y appuyez.

Étapes pour résoudre ce problème:

  1. Vérifiez les images que vous avez disponibles localement.

    $ docker images
    REPOSITORY              TAG     IMAGE ID      CREATED     VIRTUAL SIZE
    gcr.io/my-proj/my-typo  v1      40c2ae2dedb8  2 days ago  427.8 MB
    
  2. S'il y a une faute de frappe, vous pouvez exécuter le docker tag commande pour le réparer.

    $ docker tag gcr.io/my-proj/my-typo:v1 gcr.io/my-proj/my-cntr:v1
    
  3. Maintenant, vous devriez être capable de pousser l'image en utilisant le nom complet, y compris le tag.

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

    Note: Utilisez gcloud docker -- Push au lieu de docker Push _ si vous appuyez sur le registre de conteneurs Google.

7
Tim Swast

Vous devez utiliser le nom complet de l'image. Quand vous ne spécifiez pas la balise pendant la construction, c'est latest, alors vous devriez dire

docker Push binarybana/Fedora-dev:latest
4

Ajout à la réponse de Santosh Gandhe, si vous souhaitez diffuser vers un référentiel spécifique plutôt que sous votre nom de connexion.

docker tag ${image_name} docker.io/${login_name}/${remote_repo_name}:${image_name}
puis
docker Push docker.io/${login_name}/${remote_repo_name}:${image_name}

Aussi, n'oubliez pas de faire docker login première.

0
Abe