Cum pentru a împinge un docher imagine de la un depozit privat

Am un docher imagini etichetate ca mine/mi-imagine, și am un privat repo pe dockerhub nume mi-privat. Când am împinge meu mi/mi-imagine, sfârșesc întotdeauna lovind publice repo.

Ceea ce este exact sintaxa pentru a împinge în mod specific imaginea mea pentru a-mi privat repo?

Comentarii la întrebare (2)
Soluția

Ai nevoie pentru a eticheta imaginea corect în primul rând cu registryhost:

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

Apoi docker împinge folosind aceeași etichetă.

docker push NAME[:TAG]

Exemplu:

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

Doar trei pași simpli:

  1. docker autentificare-numele de utilizator username
  • solicită parola dacă omiteți --parola care este recomandat ca acesta nu't depozitați-l în istoricul comanda
  1. docker tag-ul meu-imagine de utilizator/mi-repo

  2. docker împinge numele de utilizator/mi-repo

Comentarii (6)

În primul rând du-te la dumneavoastră Docker Hub cont și de a face repo. Aici este un screenshot al meu Docker Hub contul:

Din poza, poti sa-mi vezi repo este "chuangg"

Acum du-te în repo și să-l privată, făcând clic pe numele imaginii. Deci, pentru mine, am apasat pe "chuangg/gene_commited_image", apoi m-am dus la Setări -> Asigurați-Privat. Apoi am urmat instrucțiunile de pe ecran

CUM SĂ ÎNCĂRCAȚI DOCKER IMAGINE PE DOCKER HUB

Metoda #1= Împinge imaginea prin linia de comandă (cli)

  1. docker comite <recipient ID> <repo numele>/<Numele pe care doriți pentru a oferi o imagine>

Da, cred că trebuie să fie container de IDENTITATE. Probabil că nu poate fi imaginea de IDENTITATE.

De exemplu= docker comite 99e078826312 chuangg/gene_commited_image

  1. docker este chaung/gene_commited_image

  2. docker autentificare-numele de utilizator=<utilizator numele de utilizator> --parola=<parola de utilizator>

De exemplu= docker autentificare-numele de utilizator=chuangg --email=gc.genechaung@gmail.com

Da, trebuie să vă conectați mai întâi. Logout folosind "docker logout"

  1. docker împinge chuangg/gene_commited_image

Metoda #2= Împinge imaginea folosind pom.xml și linia de comandă.

Rețineți, am folosit un Maven Profil numit "build-docher". Dacă nu doriți să utilizați un profil, doar elimina <profile>, <profil> și <id>build-docker</id> elemente.

În interiorul părinte pom.xml:



            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







Docker Terminal de Comandă pentru a implementa Docker Imagine (din directorul unde pom.xml este situat)= mvn curat implementa -Pbuild-docher docher:push

Rețineți, diferența între Metoda #2 și #3 este că Metoda #3 are un plus de ` pentru implementare.

Metoda #3= Folosind Maven automat implementa pentru Docker Hub

Adaugă chestia asta a ta mamă pom.xml:



            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









Du-te la C:\Users\Gene.docker\ director și adăuga acest la config.fișier json:

Acum în Docker Quickstart Terminal type= mvn clean install -Pbuild-docker

Pentru cei care nu folosesc Maven Profile, doar de tip mvn clean install

Aici este captura de ecran de mesaj de succes:

Aici este meu complet pom.xml și o captură de ecran de erorile mele structura de directoare:


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








Aici este meu Eclipse Director: [![introduceți descrierea imaginii aici][6]][6]

Aici este 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" ] 

Comună Eroare #1:

Soluția de Eroare #1= nu sincroniza <executarea> cu maven implementa fază pentru că atunci maven încearcă să implementeze imaginea 2x și pune o amprentă de timp pe jar. De aceea am folositinstala</fază>`.

Comentarii (0)

Dacă docker registru este privat și auto-găzduită tu ar trebui să facă următoarele :

docker login :
docker tag  :/:
docker push :/:

Exemplu :

docker login repo.company.com:3456
docker tag 19fcc4aa71ba repo.company.com:3456/myapp:0.1
docker push repo.company.com:3456/myapp:0.1
Comentarii (0)

Există două opțiuni:

  1. Du-te la hub, și de a crea depozit în primul rând, și marcați-l ca fiind private. Atunci când vă împinge la repo, acesta va fi privat. Aceasta este cea mai comună abordare.

  2. conectați-vă la dumneavoastră docker hub cont, și du-te la global settings. Există o setare care vă permite să setați ce implicit este prea mare pentru depozitele pe care le împinge. În mod implicit este setat la public, dar dacă ai schimba la privat, toate depozitele pe care le împinge vor fi marcate ca private în mod implicit. Este important să rețineți că veți avea nevoie pentru a avea suficient privat repos disponibile pe contul dvs., sau altcineva repo va fi blocat până când faceți upgrade planul tău.

Comentarii (2)

Creați depozit pe dockerhub :

$docker tag IMAGE_ID UsernameOnDockerhub/repoNameOnDockerhub:ultimele

$docker împinge UsernameOnDockerhub/repoNameOnDockerhub:ultimele

Notă : aici "repoNameOnDockerhub" : depozit cu numele pe care ai mentionat-a pentru a fi prezente pe dockerhub

"cea mai recentă" : este doar eticheta

Comentarii (0)

Ref: dock.docker.com

Acest subiect furnizează informații de bază despre implementarea și configurarea unui registru

Rula un registru local

Înainte de a putea implementa un registru, trebuie să instalați Docker pe gazdă.

Utilizați o comandă cum ar fi următoarele opțiuni pentru a începe registrul container:

start_registry.sh

#!/bin/bash

docker run -d \
  -p 5000:5000 \
  --restart=always \
  --name registry \
  -v /data/registry:/var/lib/registry \
  registry:2

Copia o imagine din Docker Hub la registrul

  1. Trage ubuntu:16.04 imagine din Docker Hub.

$ docker trage ubuntu:16.04

  1. Tag imaginea ca localhost:5000/mi-ubuntu. Acest lucru creează o suplimentare de tag-ul pentru imaginea existentă. Atunci când prima parte a eticheta este un nume de gazdă și port, Docker interpretează acest lucru ca o locație a unui registru, atunci când împinge.

$ docker tag-ul ubuntu:16.04 localhost:5000/mi-ubuntu

  1. Apasă pe imagine pentru registrul local de funcționare la localhost:5000:

$ docker împinge localhost:5000/mi-ubuntu

  1. Elimina la nivel local-în cache imagini. Acest lucru nu elimina localhost:5000/mi-ubuntu image de la al tău registru.

$ docker imagine a elimina ubuntu:16.04 $ docker imagine a elimina localhost:5000/mi-ubuntu

  1. Trage localhost:5000/mi-ubuntu imagine din registru local.

$ docker trage localhost:5000/mi-ubuntu

A implementa un simplu HTTP registry

Potrivit docs.docker.com, acest lucru este foarte nesigură și este nu se recomandă.

  1. Edita daemon.json file, a cărui locație implicită este/etc/docker/daemon.jsonpe Linux sauC:\ProgramData\docker\config\daemon.json pe Windows Server. Dacă utilizați Docker pentru Mac " sau " Docker pentru Windows, faceți clic peDocker icon -> Preferences -> Daemon, se adaugă în aniinesigur registru`.

Dacă daemon.json fișierul nu există, creați-l. Presupunând că nu există alte setări în fișierul, acesta ar trebui să aibă următorul conținut:

{ "nesigur-registre" : ["myregistrydomain.com:5000"] }

Cu nesigură registre activat, Docker trece prin următoarele etape:

  • În primul rând, încercați să utilizați HTTPS.
  • Dacă HTTPS este disponibil, dar certificatul nu este valabil, ignora eroarea despre certificat.
  • Dacă HTTPS nu este disponibil, se încadrează la HTTP.
  1. Reporniți Docker pentru ca modificările să aibă efect.
Comentarii (0)

Prima conectare private depozit.

> docker login [OPTIONS] [SERVER]

[OPTIONS]: 
-u username 
-p password

de exemplu:

> docker login localhost:8080

Și apoi etichetați fișierul pentru dvs. private, depozit

> docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

de exemplu:

> docker tag myApp:v1 localhost:8080/myname/myApp:v1

În cele din urmă împinge taged imagini pentru privată, depozit

>docker push [OPTIONS] NAME[:TAG]

de exemplu:

> docker push localhost:8080/myname/myApp:v1

De referință

Comentarii (0)

Simplă soluție de lucru:

Du-te aici https://hub.docker.com/pentru a crea un PRIVATĂ, depozit cu numele de exemplujohnsmith/privat-depozitacesta este NUMELE lui/REPOSITORY le va folosi pentru imaginea ta atunci când construirea imaginii.

  • În primul rând, docker login

  • În al doilea rând, eu folosesc "docker construi -t johnsmith/privat-depozit:01 ." (în cazul în care 01 este versiunea mea de nume) pentru a crea imaginea, și am folosi "docker imagini" pentru a confirma imaginea creată, cum ar fi în acest galben caseta de mai jos: (imi pare rau ca nu pot insera în tabel, ci șirul de text numai)

johnsmith/privat-depozit(REPOSITORY) 01(TAG) c5f4a2861d6e(IMAGINE ID) 2 zile în urmă(CREAT) 305MB(DIMENSIUNE)

Done!

Comentarii (0)