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.
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
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
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!
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:
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
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
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.
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
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}
puisdocker Push docker.io/${login_name}/${remote_repo_name}:${image_name}
Aussi, n'oubliez pas de faire docker login
première.