O Registry é uma aplicação Server Site que guarda imagens Docker para distribuição entre aplicações, desenvolvedores, ambientes de CI e etc. O mais famoso deles é o Docker Hub, uma ferramenta fantástica para compartilhamento de imagens. Porém a mesma é pública... Caso exista a necessidade de migrar suas imagens para um servidor privado, podemos fazer o deploy de um registry pessoal muito rápido utilizando o próprio Docker.
Fazendo Deploy do seu servidor via Docker CLI
Para criar um servidor que hospedará suas imagens geradas pelo Docker, utilizaremos a imagem oficial do Registry disponibilizada pela própria Docker. Essa é a forma mais simplista de fazer o deploy. $ docker run -d -p 5000:5000 --restart=always --name registry registry:2
Dados persistentes
Para mapear um volume externo para dentro do container para persistir os dados das nossas imagens, temos que mapear alguma pasta externa para o diretório /var/lib/registry dentro do container do Registry. $ docker run -d -p 5000:5000 --restart=always --name registry -v `pwd`/data:/var/lib/registry registry:2
Enviando imagens para nosso Registry Privado
Essa é a maneira mais simplista de subir e enviar uma imagem buildada para nosso Registry.Para isso, faremos o pull normal de uma imagem do MySQL na versão 5.7. Depois vamos gerar uma tag do nosso MySQL informando o novo nome, o ip do servidor do Registry e a porta do mesmo, que no caso, será 5000.
$ docker pull mysql:5.7
$ docker tag mysql:5.7 ip-do-servidor:5000/meumysql
Fazendo o Pull e Push das nossas imagens do Registry
$ docker push ip-do-servidor:5000/meumysql
e para fazer o Download das imagens...
$ docker pull ip-do-servidor:5000/meumysql
Fazendo Deploy pelo Composer
Criando uma Stack via Composer com imagens do servidor remoto
Para fazer download de um servidor privado a partir do docker-compose, basta dizer na imagem, qual vai ser o seudominioouip/imagem:versao
Fazendo um login autenticado no Docker Registry
Vamos subir um container somente para gerar um htpasswd no Registry. Vamos salvar o resultado dentro do arquivo auth/htpasswd. Isso irá gerar um usuário e senha no padrão Unix. $ mkdir auth
$ docker run --entrypoint htpasswd registry:2 -Bbn matheus senhadomatheus > auth/htpasswd
Para subir o Registry pronto para utilizar o arquivo de autenticação que acabamos de criar, basta utilizar o mesmo comando que utilizamos anteriormente, porém adicionando mais algumas variáveis de ambiente que vão trabalhar com o arquivo htpasswd que acabamos de criar
$ docker run -it -p 5000:5000 --restart=always -v `pwd`/data:/var/lib/registry -v `pwd`/auth:/auth -e "REGISTRY_AUTH=htpasswd" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" registry:2
Ou você fazer o deploy via Compose passando as variáveis de ambiente que definem os parâmetros de usuário e senha do Registry
Agora é só efetuar o login
$ docker login
Espero ter ajudado :)
Muito bom!
ResponderExcluirClaro e objetivo!!!