Estou confuso quanto à diferença entre registros de docker e repositórios. Parece que a documentação do Docker usa as duas palavras de forma intercambiável. Além disso, os repositórios às vezes são chamados de imagens, como esta em seus documentos:
Para enviar um repositório para o registro, você precisa nomear uma imagem ou comprometer seu contêiner para uma imagem nomeada, como vimos aqui.
Agora você pode enviar este repositório para o registro designado por seu nome ou tag.
Como você pode enviar um repositório para um registro? Você não está empurrando a imagem para o repositório?
git
, então - Docker Registry (o padrão éhub.docker.com
) => GitHub (github.com
); - Repositório do Docker => Repositório do Git; - Docker Tag => Ref Git (Filial / Tag)Respostas:
O registro do Docker é um serviço que está armazenando suas imagens do Docker.
O registro do Docker pode ser hospedado por terceiros, como registro público ou privado, como um dos seguintes registros:
ou você pode hospedar o registro do docker sozinho
(consulte https://docs.docker.com/ee/dtr/ para obter mais detalhes).
O repositório do Docker é uma coleção de imagens diferentes do Docker com o mesmo nome, com tags diferentes. Tag é um identificador alfanumérico da imagem em um repositório.
Por exemplo, consulte https://hub.docker.com/r/library/python/tags/ . Existem muitas tags diferentes para a imagem oficial do python, essas tags são todos membros do repositório oficial do python no Docker Hub. O Docker Hub é um registro do Docker hospedado pelo Docker.
Para saber mais, leia:
fonte
Do livro Usando o Docker, Desenvolvendo e implantando software com contêineres
Registros, Repositórios, Imagens e Tags
Existe um sistema hierárquico para armazenar imagens. A seguinte terminologia é usada:
Registro
Um serviço responsável por hospedar e distribuir imagens. O registro padrão é o Docker Hub.
Repositório
Uma coleção de imagens relacionadas (geralmente fornecendo versões diferentes do mesmo aplicativo ou serviço).
Tag
Um identificador alfanumérico anexado às imagens em um repositório (por exemplo, 14.04 ou estável).
Portanto, o comando
docker pull amouat/revealjs:latest
fará o download da imagem com a tag mais recente noamouat/revealjs
repositório do registro do Docker Hub.fonte
ubuntu:latest
eubuntu:16.04
tenha o mesmoImage ID
, o que significa que são apenas várias tags para a mesma imagem.docker pull
, que diz em parte: "Para fazer o download de uma imagem específica ou de um conjunto de imagens (por exemplo, um repositório), usedocker pull
. Se nenhuma tag for fornecida, o Docker Engine usará a:latest
tag como padrão. " Como, então, alguém "baixaria um ... conjunto de imagens (isto é, um repositório)"? 🤔Complementando as informações:
docker push
.namespace/repo-name:tag
myregistryhost:5000/namespace/repo-name:tag
fonte
image-name
. O formato deve seruser-name/repo-name:tag
, de acordo com a documentação do Docker . (Eu gostaria que o Docker tivesse usado uma terminologia melhor, é bastante confuso e eles nem são consistentes o tempo todo).docker info |grep Registry
Um repositório de janela de encaixe é uma combinação atraente de
registry
eimage
.é o mesmo que
fonte
O Docker Registry é um serviço, no qual você pode hospedar-se (Confiável e Privado) ou pode permitir que o docker hub seja o host desse serviço. Normalmente, se o seu software for comercial, você o hospedará como um registro "Privado e Confiável". Para desenvolvedores de Java, isso é um pouco análogo à configuração do Maven Artifactory.
Repositório do Docker é um conjunto de imagens "Marcadas". Um exemplo é que você pode ter marcado 5
ubuntu:latest
imagens:a) Nano editor (image1_tag: v1)
b) Um software específico 1 (image1_tag: v2)
c) Sudo (image1_tag: v3)
d) daemon http do apache (image1_tag: v4)
e) tomcat (imagem1_tag: v5)
Você pode usar o
docker push
comando para enviar cada uma das imagens acima para o seu repositório. Enquanto os nomes dos repositórios corresponderem, eles serão enviados com êxito e aparecerão sob o repositório escolhido e serão marcados corretamente.Agora, sua pergunta é: "Então, onde está hospedado este repositório / quem está gerenciando o serviço"? É aí que o Docker Registry entra em cena. Por padrão, você receberá um registro do hub do docker (código-fonte aberto) que pode ser usado para manter seu repositório público / privado. Portanto, sem nenhuma modificação, suas imagens serão enviadas para o repositório privado no docker hub. Um exemplo de saída quando você pressiona suas tags de imagem é o seguinte:
E se você digitar imediatamente,
docker images --digests -a
poderá confirmar que suas tags de imagem enviadas agora estão mostrando nova assinatura no repositório privado gerenciado pelo registro do docker hub.fonte
O Docker Hub e outros serviços de hospedagem de repositórios de terceiros são chamados de "registros". Um registro armazena uma coleção de repositórios.
Como um registro pode ter muitos repositórios e um repositório pode ter muitas versões diferentes da mesma imagem, que são individualmente versionadas com tags.
fonte