Como usar Docker Registry Localmente com docker compose push e docker compose pull

Nesse tutorial, vamos usar o docker compose para fazer push e pull de imagens para um repositório local de imagens.

Vamos iniciar coma configuração do docker registry, o Docker Registry é uma ferramenta oficial do Docker para armazenar e gerenciar imagens Docker.

Esse Tutorial Faz Parte do Treinamento Docker Compose para Desenvolvedores

Clique Aqui para Aproveitar o Desconto!

 

Vamos começar:

Certifique-se de ter acesso ao servidor “dockersrv” via SSH ou algum outro método de acesso remoto.

Se o Docker ainda não estiver instalado no seu servidor, você pode fazer isso com os seguintes comandos:

Verifique se o Docker foi instalado corretamente:

Como Configurar o Docker Registry

Execute o seguinte comando para iniciar um contêiner Docker Registry:

Isso iniciará o Docker Registry na porta 5000 e configurará o contêiner para reiniciar sempre que o servidor for reiniciado.

Verifique se o contêiner do Docker Registry está em execução:

Identique o container, veja que você terá um container com o nome registry.

 Preparação das Imagens para o Docker Registry

Agora, vamos preparar as imagens Docker que você deseja armazenar no seu repositório. Você pode construir essas imagens localmente ou trazê-las de algum registro público, como o Docker Hub.

Suponha que você tenha uma imagem chamada “custom-nginx” e deseja carregá-la no seu repositório local.

Renomeie a imagem para que ela esteja no formato apropriado para o seu repositório local:

Agora vamos parar o container e usar o Docker Compose para que o registro seja um serviço.

Identifique o container do registro e elimine o container.

Pegue o id da imagem para remover o container:

Identifique e Remova a imagem:

Agora podemos continuar e criar nosso setup de docker registry com docker compose.

Vamos criar um arquivo chamado docker-compose.yml em um diretório de trabalho de sua escolha. Adicione o seguinte conteúdo ao arquivo:

Salve o arquivo docker-compose.yml.

Criando o arquivo config.yml

Em seguida, vamos criar outro arquivo chamado config.yml no mesmo diretório. A intenção é permitir que outros hosts sejam capazes de armazenar imagens nesse docker host.

Adicione o seguinte conteúdo ao arquivo:

Salve o arquivo config.yml.

Iniciando o registro como um serviço do Docker Compose

Agora, vamos iniciar o registro como um serviço do Docker Compose. Execute o seguinte comando no terminal:

Isso iniciará o registro como um serviço usando a configuração definida no arquivo docker-compose.yml.

O parâmetro -d inicia o serviço em modo “detached” (em segundo plano).

Testando o registro com o Docker Compose

Agora que o registro está em execução, você pode usar o Docker Compose para fazer push e pull de imagens.

Para fazer push de uma imagem para o registro, você pode usar o seguinte comando no diretório onde sua imagem está localizada:

Lembre-se: Substitua nome_do_servico pelo nome do serviço que contém a imagem que você deseja fazer push. Por exemplo, se o serviço for chamado app, o comando seria:

Isso empurrará a imagem para o registro local.

Para fazer pull de uma imagem do registro, use o seguinte comando:

Substitua nome_do_servico pelo nome do serviço que contém a imagem que você deseja puxar. Por exemplo, se o serviço for chamado app, o comando seria:

Isso buscará a imagem do registro local. Mas pode ser que se você estiver no mesmo host, o compose não faça o pull alegando que as imagens não tem alterações.

Conclusão

Agora você configurou com sucesso o registro como um serviço do Docker Compose. Você pode usar o Docker Compose para fazer push e pull de imagens usando o registro local.

Neste tutorial, recriamos os passos anteriores usando o Docker Compose. Configuramos o serviço do registro no arquivo docker-compose.yml, iniciamos o serviço com o comando docker-compose up -d e usamos os comandos docker-compose push e docker-compose pull para interagir com o registro.

Sinta-se à vontade para explorar mais recursos e configurações do Docker Compose para personalizar seu ambiente. Se você tiver alguma dúvida ou precisar de ajuda adicional, por favor, deixe um comentário. Happy coding!

 

Rolar para cima