Mai mult
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?
362
9
Ai nevoie pentru a eticheta imaginea corect în primul rând cu
registryhost
:Apoi docker împinge folosind aceeași etichetă.
Exemplu:
Doar trei pași simpli:
docker autentificare-numele de utilizator username
--parola
care este recomandat ca acesta nu't depozitați-l în istoricul comandadocker tag-ul meu-imagine de utilizator/mi-repo
docker împinge numele de utilizator/mi-repo
Î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)
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
docker este chaung/gene_commited_image
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"
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:
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:
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:
Aici este meu Dockerfile:
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 folosit
instala</fază>`.Dacă docker registru este privat și auto-găzduită tu ar trebui să facă următoarele :
Exemplu :
Există două opțiuni:
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.
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.
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
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
Copia o imagine din Docker Hub la registrul
ubuntu:16.04
imagine din Docker Hub.$ docker trage ubuntu:16.04
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
localhost:5000
:$ docker împinge localhost:5000/mi-ubuntu
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
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ă.
daemon.json file, a cărui locație implicită este
/etc/docker/daemon.jsonpe Linux sau
C:\ProgramData\docker\config\daemon.json pe Windows Server. Dacă utilizațiDocker pentru Mac " sau " Docker pentru Windows, faceți clic pe
Docker icon -> Preferences -> Daemon, se adaugă în anii
nesigur 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:
Prima conectare private depozit.
de exemplu:
Și apoi etichetați fișierul pentru dvs. private, depozit
de exemplu:
În cele din urmă împinge taged imagini pentru privată, depozit
de exemplu:
De referință
Simplă soluție de lucru:
Du-te aici https://hub.docker.com/
pentru a crea un PRIVATĂ, depozit cu numele de exemplu
johnsmith/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)Done!