J'ai une image de docker étiquetée comme me/my-image
, et j'ai un dépôt privé sur le dockerhub nommé me-private
.
Quand je pousse mon me/my-image
, je finis toujours par frapper le repo public.
Quelle est la syntaxe exacte pour pousser spécifiquement mon image vers mon référentiel privé?
docker
docker-registry
Eugene Goldberg
la source
la source
Réponses:
Vous devez d'abord étiqueter correctement votre image avec votre
registryhost
:Docker push en utilisant cette même balise.
Exemple:
la source
docker tag 518a41981a6a me-private.com/myPrivateImage && docker push me-private.com/myPrivateImage
docker login
première, puis marquez votre image:docker tag 518a41981a6a me-private/myPrivateImage
et appuyez sur:docker push me-private/myPrivateImage
Trois étapes simples:
docker login --username username
--password
ce qui est recommandé car il ne le stocke pas dans votre historique de commandesdocker tag my-image username/my-repo
docker push username/my-repo
la source
--password
drapeau si vous ne voulez pas que votre mot de passe apparaisse dans l'historique. cela vous demandera.Accédez d'abord à votre compte Docker Hub et effectuez le repo. Voici une capture d'écran de mon compte Docker Hub:
De la photo, vous pouvez voir que mon repo est "chuangg"
Maintenant, allez dans le repo et rendez-le privé en cliquant sur le nom de votre image. Donc pour moi, j'ai cliqué sur "chuangg / gene_commited_image", puis je suis allé dans Paramètres -> Rendre privé. Ensuite, j'ai suivi les instructions à l'écran
COMMENT TÉLÉCHARGER VOTRE IMAGE DOCKER SUR LE HOCK DOCKER
Méthode n ° 1 = pousser votre image via la ligne de commande (cli)
1)
docker commit <container ID> <repo name>/<Name you want to give the image>
Oui, je pense que ce doit être l'ID du conteneur. Il ne peut probablement pas s'agir de l'ID d'image.
Par exemple =
docker commit 99e078826312 chuangg/gene_commited_image
2)
docker run -it chaung/gene_commited_image
3)
docker login --username=<user username> --password=<user password>
Par exemple =
docker login --username=chuangg [email protected]
Oui, vous devez d'abord vous connecter. Déconnexion à l'aide de la «déconnexion du docker»
4)
docker push chuangg/gene_commited_image
Méthode n ° 2 = pousser votre image en utilisant pom.xml et la ligne de commande.
Remarque, j'ai utilisé un profil Maven appelé «build-docker». Si vous ne souhaitez pas utiliser de profil, supprimez simplement les
<profiles>, <profile>, and <id>build-docker</id>
éléments.À l'intérieur du parent pom.xml:
Docker Terminal Command pour déployer l'image Docker (à partir du répertoire où se trouve votre pom.xml) =
mvn clean deploy -Pbuild-docker docker:push
Remarque, la différence entre la méthode # 2 et # 3 est que la méthode # 3 a un supplément
<execution>
pour le déploiement.Méthode n ° 3 = Utilisation de Maven pour déployer automatiquement sur Docker Hub
Ajoutez ce truc à votre parent pom.xml:
Accédez au répertoire C: \ Users \ Gene.docker \ et ajoutez-le à votre fichier config.json:
Maintenant dans votre Docker Quickstart Terminal type =
mvn clean install -Pbuild-docker
Pour ceux d'entre vous qui n'utilisent pas les profils Maven, tapez simplement
mvn clean install
Voici la capture d'écran du message de réussite:
Voici mon pom.xml complet et une capture d'écran de la structure de mon répertoire:
Voici mon répertoire Eclipse:
Voici mon Dockerfile:
Erreur courante # 1:
Solution pour l'erreur # 1 = Ne synchronisez pas la
<execution>
phase de déploiement avec maven car ensuite maven essaie de déployer l'image 2x et place un horodatage sur le bocal. Voilà pourquoi j'ai utilisé<phase>install</phase>
.la source
Si votre registre Docker est privé et auto-hébergé, vous devez procéder comme suit:
Exemple :
la source
Il y a deux options:
Accédez au hub, créez d'abord le référentiel et marquez-le comme privé. Ensuite, lorsque vous poussez vers ce dépôt, il sera privé. Il s'agit de l'approche la plus courante.
connectez-vous à votre compte Docker Hub et accédez à vos paramètres globaux . Il existe un paramètre qui vous permet de définir votre visibilité par défaut pour les référentiels que vous envoyez. Par défaut, il est défini sur public, mais si vous le changez en privé, tous vos référentiels que vous envoyez seront marqués comme privés par défaut. Il est important de noter que vous aurez besoin d'avoir suffisamment de repos privés disponibles sur votre compte, sinon le dépôt sera verrouillé jusqu'à ce que vous mettiez à jour votre plan.
la source
docker push
commande. Mais si j'ai bien compris la question, aucune de ces réponses n'est correcte et celle affichée ci-dessus par Ken Cochrane est la seule qui devrait être acceptée.Créer un référentiel sur dockerhub:
$docker tag IMAGE_ID UsernameOnDockerhub/repoNameOnDockerhub:latest
$docker push UsernameOnDockerhub/repoNameOnDockerhub:latest
Remarque : ici "repoNameOnDockerhub": le référentiel avec le nom que vous mentionnez doit être présent sur dockerhub
"dernier": c'est juste une balise
la source
Réf: dock.docker.com
Cette rubrique fournit des informations de base sur le déploiement et la configuration d'un registre
Exécutez un registre local
Avant de pouvoir déployer un registre, vous devez installer Docker sur l'hôte.
Utilisez une commande comme la suivante pour démarrer le conteneur de registre:
start_registry.sh
Copiez une image de Docker Hub dans votre registre
Tirez l'
ubuntu:16.04
image du Docker Hub.Marquez l'image comme
localhost:5000/my-ubuntu
. Cela crée une balise supplémentaire pour l'image existante. Lorsque la première partie de la balise est un nom d'hôte et un port, Docker l'interprète comme l'emplacement d'un registre lors de la transmission.Envoyez l'image au registre local en cours d'exécution à
localhost:5000
:Supprimez les images mises en cache localement. Cela ne supprime pas l'
localhost:5000/my-ubuntu
image de votre registre.Tirez l'
localhost:5000/my-ubuntu
image de votre registre local.Selon docs.docker.com , cela est très précaire et n'est pas recommandé .
Modifiez le
daemon.json
fichier, dont l'emplacement par défaut est/etc/docker/daemon.json
sous Linux ouC:\ProgramData\docker\config\daemon.json
sur Windows Server. Si vous utilisezDocker for Mac
ouDocker for Windows
, cliquez surDocker icon -> Preferences -> Daemon
, ajoutez leinsecure registry
.Si le
daemon.json
fichier n'existe pas, créez-le. En supposant qu'il n'y ait pas d'autres paramètres dans le fichier, il devrait avoir le contenu suivant:Avec les registres non sécurisés activés, Docker passe par les étapes suivantes:
Redémarrez Docker pour que les modifications prennent effet.
la source
Connectez-vous d'abord à votre référentiel privé.
par exemple:
Et puis marquez votre image pour votre référentiel privé
par exemple:
Poussez enfin vos images Taged vers votre référentiel privé
par exemple:
Référence
la source
Solution de travail simple:
Allez ici
https://hub.docker.com/
pour créer un référentiel PRIVÉ avec un nom par exemple,johnsmith/private-repository
c'est celui queNAME/REPOSITORY
vous utiliserez pour votre image lors de la construction de l'image.Première,
docker login
Deuxièmement, j'utilise "
docker build -t johnsmith/private-repository:01 .
" (où 01 est le nom de ma version) pour créer l'image, et j'utilise "docker images
" pour confirmer l'image créée, comme dans cette boîte jaune ci-dessous: (désolé, je ne peux pas coller le format du tableau mais la chaîne de texte uniquement )docker push johnsmith/private-repository:01
(Votre dépôt privé sera ici un exemple https://hub.docker.com/r/johnsmith/private-repository/ )Terminé!
la source