2015-11-30 34 views
59

Sono confuso per quanto riguarda la differenza tra i registri docker e gli archivi. Sembra che la documentazione di Docker utilizzi le due parole in modo intercambiabile. Inoltre, i repository sono a volte indicato come immagini, come ad esempio questo dai loro documenti:Differenza tra registro Docker e repository

Al fine di spingere un repository per il suo registro, è necessario aver chiamato un'immagine o impegnati vostro contenitore a un'immagine chiamato come abbiamo visto qui

Ora è possibile trasferire questo repository nel registro designato dal relativo nome o tag .

Come è possibile trasferire un repository in un registro? Non stai spingendo l'immagine nel repository?

+3

che dire di finestra mobile immagini vs repository docker? –

+0

per archivi di immagini vs: https://stackoverflow.com/questions/31115098/in-docker-what-is-the-difference-between-an-image-and-a-repository – wisbucky

risposta

75

Il registro Docker è un servizio che sta memorizzando le immagini della finestra mobile.

Docker registro potrebbe essere ospitata da una terza parte, come registro pubblico o privato, come uno dei seguenti registri:

oppure è possibile ospitare autonomamente il registro docker
(vedere https://docs.docker.com/docker-trusted-registry/ per ulteriori dettagli).

Il repository Docker è una raccolta di diverse immagini di finestra mobile con lo stesso nome, con tag diversi. Il tag è un identificatore alfanumerico dell'immagine all'interno di un repository.

Ad esempio, vedere https://hub.docker.com/r/library/python/tags/. Ci sono molti tag diversi per l'immagine pitone ufficiale, questi tag sono tutti membri del repository python ufficiale sull'Hub Docker. Docker Hub è un registro Docker ospitato da Docker.

Per saperne di più leggi:

+5

L'artefatto è uno da aggiungere alla lista ;) Lo usiamo – buildmaestro

+1

E questo è il link per Artifactory - https://www.jfrog.com/confluence/display/RTF/Docker+Registry – JBaruch

+0

Qual è la differenza tra repository e immagini nella finestra mobile? –

33

Dal libro Using Docker, Developing and deploying Software with Containers

Registri, Depositi, Immagini e Tag

Esiste un sistema gerarchico per la memorizzazione delle immagini. la seguente terminologia viene utilizzata:

Registro

Un servizio responsabile per l'hosting e distribuzione di immagini. Il registro predefinito è Docker Hub.

Repository

Una raccolta di immagini correlate (di solito fornisce diverse versioni della stessa applicazione o il servizio).

Tag

Un identificatore alfanumerico collegato ad immagini in un archivio (ad esempio, 14.04 o stabile).

Quindi il comando docker pull amouat/revealjs:latest scaricherà l'immagine taggata più recente all'interno del repository amouat/revealjs dal registro Docker Hub.

+0

quindi è possibile avere più tag per una singola immagine? –

+0

@charlie Sì. Ad esempio, in questo momento 'ubuntu: latest' e' ubuntu: 16.04' hanno lo stesso 'Image ID', il che significa che sono solo più tag per la stessa immagine. – wisbucky

+0

Nel punto in cui si trova nella documentazione per 'docker pull', che legge in parte:" Per scaricare una particolare immagine, o una serie di immagini (ad es. Un repository), usare 'docker pull'. Se non viene fornito alcun tag, Docker Engine utilizza il tag ': latest' come predefinito." In che modo, quindi, si potrebbe "scaricare un ... set di immagini (vale a dire un repository)"? –

4

A complemento delle informazioni:

  • Di solito si preme un repository per un Registro di sistema (e tutte le immagini che fanno parte di esso). Ma puoi spingere una singola immagine in un registro. In tutti i casi, si utilizza docker push.
  • L'immagine ha un 12-hex cifre ID immagine, ma è anche identificato da: namespace/repo-name:tag
  • Il nome completo dell'immagine può essere facoltativamente preceduto dal nome dell'host registro e la porta: myregistryhost:5000/namespace/repo-name:tag
  • Una convenzione comune è usare il tuo nome utente del registro come quello che ho chiamato "spazio dei nomi".
+1

Ricevo quello che dici, ma tecnicamente non esiste "nome-immagine". Il formato dovrebbe essere 'user-name/repo-name: tag', in base a [documentazione Docker] (https: //docs.docker.com/finestra mobile-hub/repos/spingere-a-repository-image-to-finestra mobile-hub) #. (Vorrei che Docker avesse usato una terminologia migliore, è piuttosto confuso e non sono nemmeno coerenti per tutto il tempo). – wisbucky

+0

@wisbucky Grazie! Ho aggiornato la mia risposta. In effetti, la documentazione non è stata buona quando ho risposto a questa domanda un anno fa. Ad esempio, ho creato un problema sul repository github docker perché il glossario del docker non conteneva "layer" e "namespace" (!) –

+0

E come fa la finestra mobile a elaborare l'indirizzo IP di un registro pubblico quando si inserisce qualcosa come nimmis/docker-alpine-java: latest – Adam

0

Un repository docker è una combinazione carina di registry e image.

docker tag foo <registry>/<image>:<tag> 

è lo stesso di

docker tag foo <repository>:<tag> 
Problemi correlati