O que é um registro?#
Esta página conceitual explicará o que é um registro, explorará sua interoperabilidade e fará você interagir com registros.
Explicação#
Agora que você sabe o que é uma imagem de contêiner e como ela funciona, você pode se perguntar: onde você armazena essas imagens?
Bem, você pode armazenar suas imagens de contêiner no sistema do seu computador, mas e se você quiser compartilhá-las com outras pessoas ou usá-las em outra máquina? É aí que entra o registro de imagem.
Um registro de imagem é um local centralizado para armazenar e compartilhar suas imagens de contêiner. Ele pode ser público ou privado. O Docker Hub é um registro público que qualquer pessoa pode usar e é o registro padrão.
Embora o Docker Hub seja uma opção popular, há muitos outros registros de contêiner disponíveis hoje, incluindo Amazon Elastic Container Registry(ECR), Azure Container Registry (ACR) e Google Container Registry (GCR). Você pode até mesmo executar seu registro privado em seu sistema local ou dentro de sua organização. Por exemplo, Harbor, JFrog Artifactory, GitLab Container Registry, etc.
Registro vs. repositório#
Ao trabalhar com registros, você pode ouvir os termos registro e repositório como se fossem intercambiáveis. Embora sejam relacionados, não são exatamente a mesma coisa.
Um registro é um local centralizado que armazena e gerencia imagens de contêiner, enquanto um repositório é uma coleção de imagens de contêiner relacionadas dentro de um registro. Pense nisso como uma pasta onde você organiza suas imagens com base em projetos. Cada repositório contém uma ou mais imagens de contêiner.
O diagrama a seguir mostra o relacionamento entre um registro, repositórios e imagens.
+---------------------------------------+
| Registro |
|---------------------------------------|
| |
| +-----------------------------+ |
| | Repositório A | |
| |-----------------------------| |
| | Imagem: projeto-a:v1.0 | |
| | Imagem: projeto-a:v2.0 | |
| +-----------------------------+ |
| |
| +-----------------------------+ |
| | Repositório B | |
| |-----------------------------| |
| | Imagem: projeto-b:v1.0 | |
| | Imagem: projeto-b:v1.1 | |
| | Imagem: projeto-b:v2.0 | |
| +-----------------------------+ |
| |
+---------------------------------------+
Você pode criar um repositório privado e repositórios públicos ilimitados usando a versão gratuita do Docker Hub. Para mais informações, visite a página de assinatura do Docker Hub.
Experimente#
Nesta prática, você aprenderá como construir e enviar uma imagem do Docker para o repositório do Docker Hub.
Cadastre-se para uma conta Docker gratuita#
- Se você ainda não criou uma, vá até a página do Docker Hub para cadastrar uma nova conta Docker. Você pode usar sua conta do Google ou GitHub para autenticar.
Crie seu primeiro repositório#
-
Entre no Docker Hub.
-
Selecione o botão Create repository no canto superior direito.
-
Selecione seu namespace (provavelmente seu nome de pessoa usuária) e insira
docker-quickstart
como o nome do repositório. -
Defina a visibilidade como Public.
-
Selecione o botão Create para criar o repositório.
Pronto. Você criou seu primeiro repositório com sucesso. 🎉
No momento, este repositório está vazio. Agora você vai consertar isso enviando uma imagem para ele.
Entre usando o Docker Desktop#
-
Baixe e instale o Docker Desktop, se ainda não estiver instalado.
-
Na GUI do Docker Desktop, selecione o botão Sign in no canto superior direito.
Clone o código Node.js de exemplo#
Para criar uma imagem, primeiro você precisa de um projeto. Para começar rapidamente, você usará um projeto Node.js de exemplo encontrado em github.com/dockersamples/helloworld-demo-node. Este repositório contém um Dockerfile pré-construído necessário para construir uma imagem Docker.
Não se preocupe com as especificidades do Dockerfile, pois você aprenderá sobre isso em seções posteriores.
-
Clone o repositório GitHub usando o seguinte comando:
shell git clone https://github.com/dockersamples/helloworld-demo-node
-
Navegue até o diretório recém-criado:
shell cd helloworld-demo-node
-
Execute o seguinte comando para criar uma imagem do Docker, trocando
YOUR_DOCKER_USERNAME
pelo seu nome de pessoa usuária.shell docker build -t <YOUR_DOCKER_USERNAME>/docker-quickstart .
Certifique-se de incluir o ponto (.) no final do comando
docker build
. Isso informa ao Docker onde encontrar o Dockerfile. -
Execute o seguinte comando para listar a imagem Docker recém-criada:
shell docker images
Você verá uma saída como a seguinte:shell REPOSITORY TAG IMAGE ID CREATED SIZE <YOUR_DOCKER_USERNAME>/docker-quickstart latest 476de364f70e 2 minutes ago 170MB
-
Inicie um contêiner para testar a imagem executando o seguinte comando (troque o nome de pessoa usuária pelo seu nome de pessoa usuária):
shell docker run -d -p 8080:8080 <YOUR_DOCKER_USERNAME>/docker-quickstart
Você pode verificar se o contêiner está funcionando visitando http://localhost:8080 com seu navegador. -
Use o comando
docker tag
para adicionar uma tag à imagem do Docker. As tags do Docker permitem que você rotule e versione suas imagens.shell docker tag <YOUR_DOCKER_USERNAME>/docker-quickstart <YOUR_DOCKER_USERNAME>/docker-quickstart:1.0
-
Por fim, é hora de enviar a imagem recém-criada para o seu repositório do Docker Hub usando o comando
docker push
:shell docker push <YOUR_DOCKER_USERNAME>/docker-quickstart:1.0
-
Abra o Docker Hub e navegue até seu repositório. Navegue até a seção Tags e veja sua imagem recém-enviada.
Neste tutorial, você criou uma conta do Docker, criou seu primeiro repositório do Docker Hub e construiu, adicionou uma tag e enviou uma imagem de contêiner para seu repositório do Docker Hub.
Recursos adicionais#
Próximos passos#
Agora que você entende os conceitos básicos de contêineres e imagens, já pode aprender sobre o Docker Compose.