Esta página foi elaborada, com informações básicas sobre como você pode manter seus Containers usando o Docker Distribution em seu ambiente local.
O Docker Distribuition, é um registry repositório de imagens Docker local, serve para guardar e compartilhar as suas imagens.
Esta é uma sugestão de uma configuração inicial para o Registry local, para máquinas de testes. Não implemente um servidor de registro em produção, sem proteção por TLS e um mecanismo de controle de acesso.
- Máquina com sistema operacional Linux;
- Você precisa ter o Docker instalado em sua máquina local;
Para que possamos ter o Docker Distribuition, de forma simples e funcional, guardando e distribuindo nossas imagens Docker localmente, basta rodá-lo como um container, execute o seguinte comando:
$ docker container run -d -p 5000:5000 --restart=always --name registry registry:2
Resultado da execução
O container ID 50086bf481e753e39f8098487594cf85827d040af41f5c989fccffbc8dc0d782 foi criado com sucesso!
Você pode verificar se o container registry está em execução, através de um dos comandos abaixo:
$ docker container ls
$ docker container ps
$ docker ps
O container foi criado e está em execução. Agora vamos testá-lo realizando a submissão de uma imagem de teste no repositório.
Quando você criar um container registry, uma estrutura de diretórios será construída em sua máquina local, onde todas as imagens enviadas serão organizadas. Para descobrir a localização do repositório, observe o comando abaixo:
Lembrando que: O repositório será montado, no sitema de arquivos Linux, somente se o container registry estiver em execução (rodando).
$ df -h
- Baixe uma imagem Docker Hub, usando o comando abaixo:
$ docker pull centos
- Para verificar as imagens baixas digite:
$ docker image ls
- Vamos preparar a imagem centos ID 300e315adb2f, para envio ao repositório "registry" local. Teremos que adicionar uma nova TAG, apontando para o endereço do registry. Para isso, vamos utilizar o comando "docker tag".
$ docker tag 300e315adb2f localhost:5000/centos
- A imagem
localhost:5000/centos
está pronta para enviarmos para o repositório.
Na versão Docker Entreprise, exitem outros comandos que ajudam na gestão do repositório, tais como:
$ docker registry events
$ docker registry history
$ docker registry info
$ docker registry inspect
$ docker registry joblogs
$ docker registry jobs
$ docker registry ls
$ docker registry rmi
5 ) Enviar a imagem para o repositório
$ docker push localhost:5000/centos
Feito! a imagem foi arquivada no repositório local.*
Testaremos a recuperação ou distribuição da imagem via repositório criado. Para isto, apagaremos do cache a imagem do CentOS que baixamos, e a imagem que foi preparada.
$ docker image ls
$ docker image rm -f 300e315adb2f (Este comando apaga imagem 300e315adb2f)
$ docker image ls
Baixe a imagem do CentOS que está no repositório local.
$ docker pull localhost:5000/centos
$ docker image ls
Pronto! a imagem foi baixada do repositório local.
Usamos o Docker Distribuition, em ambiente de desenvolvimento e acadêmico fora da Internet, para centralizar, organizar e compartilhar, as imagens dos projetos os quais estamos trabalhando, com o restante das equipes. E, as imagens mais importantes, sempre fazemos um backup externo. (O que recomendo)
Caso, você esteja pensando em implementar um servidor Registry em produção, eu sugiro leitura complementar em Docker Registry, para a implementação de regras adicionais de segurança.
Espero ter contribuido com o seu desenvolvimento de alguma forma.
Referências:
- Docker
- Docker Registry
- Livro: Descomplicando o Docker 2a edição
Jeferson Fernando Noronha Vitalino
Marcus André Nunes Castro