Comment pousser une image Docker vers un dépôt privé ?

J'ai une image docker étiquetée sous le nom de "me/my-image", et j'ai un repo privé sur le dockerhub nommé "me-private". Lorsque je pousse mon image me/my-image, je finis toujours par toucher le dépôt public.

Quelle est la syntaxe exacte pour pousser spécifiquement mon image vers mon repo privé ?

Solution

Vous devez d'abord marquer votre image correctement avec votre registryhost :

docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]

Ensuite, faites un push docker en utilisant ce même tag.

docker push NAME[:TAG]

Exemple :

docker tag 518a41981a6a myRegistry.com/myImage
docker push myRegistry.com/myImage
Commentaires (8)

Tout d'abord, allez sur votre compte Docker Hub et créez le dépôt. Voici une capture d'écran de mon compte Docker Hub : [!entrer la description de l'image ici][1]][1]

Sur l'image, 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é à Settings -> Make Private. Puis j'ai suivi les instructions à l'écran [!entrez la description de l'image ici][2]][2]

COMMENT TÉLÉCHARGER VOTRE IMAGE DOCKER SUR DOCKER HUB

Méthode #1= Pousser votre image par la ligne de commande (cli)

  1. docker commit /

Par exemple= docker login --username=chuangg --email=gc.genechaung@gmail.com

Oui, vous devez d'abord vous connecter. Déconnexion à l'aide de "docker logout"

  1. docker push chuangg/gene_commited_image

Méthode #2= Pousser votre image en utilisant pom.xml et la ligne de commande.

Note, j'ai utilisé un profil Maven appelé "build-docker". Si vous ne voulez pas utiliser un profil, enlevez simplement les éléments , , et build-docker.

Dans le pom.xml parent :



            build-docker



                        io.fabric8
                        docker-maven-plugin
                        0.18.1



                                    chuangg/gene_project
                                    ${docker.container.name}


                                        ${project.basedir}\src\docker\vending_machine_emulator




                                                        ${project.basedir}\target
                                                        <outputDirectory>.

                                                            *.jar











                                docker:build
                                package

                                    build







Commande du terminal Docker pour déployer l'image Docker (depuis le répertoire où se trouve votre pom.xml)= mvn clean deploy -Pbuild-docker docker:push

Notez, la différence entre la méthode #2 et #3 est que la méthode #3 a un `` supplémentaire pour le déploiement.

Méthode n°3 = Utilisation de Maven pour le déploiement automatique sur le hub de Docker.

Ajoutez ces éléments à votre pom.xml parent :



            gene
            chuangg
            false
            legacy
            https://index.docker.io/v1/





            build-docker




                        io.fabric8
                        docker-maven-plugin
                        0.18.1



                                    chuangg/gene_project1
                                    ${docker.container.name}


                                        ${project.basedir}\src\docker\vending_machine_emulator




                                                        ${project.basedir}\target
                                                        <outputDirectory>.

                                                            *.jar











                                docker:build
                                package

                                    build



                                docker:push
                                install

                                    push









Allez dans le répertoire C:\Users\Gene.docker\ et ajoutez ceci à votre fichier config.json : [ ![entrez la description de l'image ici][3]][3]

Maintenant, dans votre terminal de démarrage rapide de Docker, tapez 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 : [!entrer la description de l'image ici][4]][4]

Voici mon pom.xml complet et une capture d'écran de ma structure de répertoire :


4.0.0

com.gene.app
VendingMachineDockerMavenPlugin
1.0-SNAPSHOT
jar

Maven Quick Start Archetype
www.gene.com





                org.apache.maven.plugins
                maven-jar-plugin



                            com.gene.sample.Customer_View





                org.apache.maven.plugins
                maven-compiler-plugin
                3.1


                    1.7
                    1.7









        junit
        junit
        4.8.2
        test






        gene
        chuangg
        false
        legacy
        https://index.docker.io/v1/





        build-docker

            1.8.0





                    io.fabric8
                    docker-maven-plugin
                    0.18.1



                                chuangg/gene_project1
                                ${docker.container.name}


                                    ${project.basedir}\src\docker\vending_machine_emulator




                                                    ${project.basedir}\target
                                                    <outputDirectory>.

                                                        *.jar











                            docker:build
                            package

                                build



                            docker:push
                            install

                                push








Voici mon répertoire Eclipse : [!entrer la description de l'image ici] [6]] [6]

Voici mon Dockerfile :

FROM java:8

MAINTAINER Gene Chuang
RUN echo Running Dockerfile in src/docker/vending_machine_emulator/Dockerfile directory

ADD maven/VendingMachineDockerMavenPlugin-1.0-SNAPSHOT.jar /bullshitDirectory/gene-app-1.0-SNAPSHOT.jar 

CMD ["java", "-classpath", "/bullshitDirectory/gene-app-1.0-SNAPSHOT.jar", "com/gene/sample/Customer_View" ] 

Erreur commune n°1 : [!entrer la description de l'image ici][5]][5]

Solution pour l'erreur #1= Ne pas synchroniser la `avec la phase de déploiement de maven car alors maven essaie de déployer l'image 2x et met un timestamp sur le jar. C'est pourquoi j'ai utiliséinstall`.

[1] : https://i.stack.imgur.com/tLeZZ.png [2] : https://i.stack.imgur.com/DWVke.png [3] : https://i.stack.imgur.com/10Jur.png [4] : https://i.stack.imgur.com/Wc7Uq.png [5] : https://i.stack.imgur.com/uwQCQ.png [6] : https://i.stack.imgur.com/VGsVg.png

Commentaires (0)

Il existe deux options :

  1. Allez dans le hub, et créez d'abord le dépôt, et marquez-le comme privé. Ensuite, lorsque vous poussez vers ce dépôt, il sera privé. C'est l'approche la plus courante.

  2. connectez-vous à votre compte docker hub, et allez dans vos [paramètres globaux][1]. Il y a un paramètre qui vous permet de définir la visibilité par défaut pour les dépôts que vous poussez. Par défaut, il est défini comme public, mais si vous le changez en privé, tous les dépôts que vous envoyez seront marqués comme privés par défaut. Il est important de noter que vous devrez avoir suffisamment de dépôts privés disponibles sur votre compte, sinon le dépôt sera verrouillé jusqu'à ce que vous mettiez votre plan à niveau.

[1] : https://registry.hub.docker.com/account/settings/global/

Commentaires (2)