Como empurrar uma imagem de um estivador para um repositório privado

Tenho uma imagem da doca etiquetada como eu/minha imagem, e tenho um reporte privado na doca chamado "eu/privado". Quando empurro a minha "eu/minha imagem", acabo sempre a bater no reporte público.

Qual é a sintaxe exata para empurrar especificamente a minha imagem para o meu repo privado?

Solução

Você precisa etiquetar sua imagem corretamente primeiro com o seu registrador:

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

Depois empurra a doca usando essa mesma etiqueta.

docker push NAME[:TAG]

Exemplo:

docker tag 518a41981a6a myRegistry.com/myImage
docker push myRegistry.com/myImage
Comentários (8)

Primeiro vai à tua conta no Docker Hub e faz o reporte. Aqui está uma captura de ecrã da minha conta no Docker Hub:

Pela foto, você pode ver que o meu repo é "chuangg".

Agora entre no repo e torne-o privado, clicando no nome da sua imagem. Então para mim, cliquei em "chuangg/gene_commited_image", depois fui para Settings -> Make Private. Depois segui as instruções no ecrã

COMO CARREGAR A SUA IMAGEM DE DOCA NO CENTRO DE ATRACAGEM

Método #1= Empurrando sua imagem através da linha de comando (cli)

  1. docker commit /

Sim, acho que tem de ser a identificação do contentor. Provavelmente não pode ser o ID da imagem.

Por exemplo= docker commit 99e078826312 chuangg/gene_commited_image

  1. docker run -it chaung/gene_commited_image

  2. docker login --username= --password=

Por exemplo= docker login --username=chuangg --email=gc.genechaung@gmail.com

Sim, você tem que fazer o login primeiro. Sair usando o "logout da doca".

  1. docker push chuangg/gene_commited_image

Método #2= Empurrando sua imagem usando pom.xml e linha de comando.

Nota, usei um Perfil Maven chamado "build-docker". Se você não quiser utilizar um perfil, basta remover os elementos , and build-docker.

Dentro da pom.xml pai:



            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







Comando Docker Terminal para implantar a Imagem Docker (do diretório onde seu pom.xml está localizado)= mvn clean deploy -Pbuild-docker docker:push

Nota, a diferença entre o Método #2 e #3 é que o Método #3 tem um `` extra para o deployment.

Método #3= Usando Maven para implantar automaticamente no Docker Hub

Adicione este material ao seu pom.xml pai:



            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









Vá ao directório C:\Users/Gene.docker e adicione isto ao seu ficheiro config.json:

Agora no seu Docker Quickstart Terminal type= mvn clean install -Pbuild-docker.

Para aqueles que não utilizam Maven Profiles, basta digitar mvn clean install.

Aqui está a captura de tela da mensagem de sucesso:

Aqui está meu pom.xml completo e uma captura de tela da estrutura do meu diretório:


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








Aqui está o meu Directório Eclipse:

Aqui está o meu 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" ] 

Erro Comum #1:

Solução para o Erro #1= Não sincronizar o `com a fase de implantação maven porque então maven tenta implantar a imagem 2x e coloca um carimbo de tempo no jarro. É por isso que eu useiinstall`.

Comentários (0)

Há duas opções:

  1. Entre no centro, e crie o repositório primeiro, e marque-o como privado. Depois, quando você pressionar esse repo, ele será privado. Esta é a abordagem mais comum.

  2. Entre na sua conta do hub da doca e vá para as suas configurações globais. Há uma configuração que te permite definir qual é a tua visibilidade padrão para os repositórios que carregas. Por defeito está definido para público, mas se o mudares para privado, todos os teus repositórios que carregares serão marcados como privados por defeito. É importante notar que você precisará ter suficientes repositórios privados disponíveis em sua conta, ou então o repo será bloqueado até que você atualize seu plano.

Comentários (2)