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:
docker@my-docker-vm:/$ docker push mydockerhub/my-helloworld-repo:my_tag
The push refers to repository [docker.io/mydockerhub/my-helloworld-repo]
bf41e934d39d: Pushed
70d93396f87f: Pushed
6ec525dfd060: Pushed
705419d10b13: Pushed
a4aaef726d02: Pushed
04964fddc946: Pushed
latest: digest: sha256:eb93c92351bce785aa3ec0de489cfeeaafd55b7d90adf95ecea02629b376e577 size: 1571
docker@my-docker-vm:/$
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.