2
respostas

Repositórios além do DockerHub

A minha dúvida consiste na possibilidade de se usar outros provedores de repositórios Docker além do DockerHub, ou até mesmo privados, para serem usados apenas localmente no ambiente corporativo de uma empresa.

Pelo que tenho entendido até agora, o DockerHub está para o Docker assim como o GitHub está para o Git. Porém no git temos o provedor, ou seja, onde compartilharemos nossos projetos a nível de repositório. Uma única instalação git pode ter inúmeros projetos e cada um desses ser disponibilizado em um provedor distinto.

Como isso funciona com o Docker? Digamos que eu tenha duas imagens, imagem_a e imagem_b. A imagem_a eu desejo enviar para o docker hub, mas a imagem_b é algo privado para ser utilizado apenas internamente pela empresa. Como faço isso?

Obrigado.

2 respostas

Olá, Jackson!

Você está correto ao comparar o Docker Hub com o GitHub no contexto de repositórios. Assim como no Git, onde é possível utilizar diferentes provedores de repositórios, no Docker também temos essa flexibilidade.

Para além do Docker Hub, existem outros provedores de repositórios Docker, como:

  • Amazon Elastic Container Registry (ECR)
  • Google Container Registry (GCR)
  • Azure Container Registry (ACR)
  • GitLab Container Registry
  • Quay.io

Além desses, você pode configurar um repositório privado para uso interno na sua empresa. Uma das opções mais populares para isso é o Harbor, que é um repositório de contêineres open-source que você pode hospedar localmente.

Como configurar um repositório Docker privado usando o Harbor

  1. Instalação do Harbor:

    • Baixe o Harbor no site oficial Harbor Releases.
    • Extraia o arquivo baixado e configure o harbor.yml de acordo com suas necessidades.
    • Execute o script de instalação: ./install.sh.
  2. Configuração do Docker para usar o Harbor:

    • Após a instalação, você pode acessar o Harbor através do navegador e criar um projeto para armazenar suas imagens.
    • No terminal, faça login no seu repositório Harbor:
      docker login <endereço_do_seu_harbor>
      
    • Para enviar uma imagem para o Harbor, você deve marcar a imagem com a URL do seu repositório:
      docker tag imagem_b:latest <endereço_do_seu_harbor>/projeto/imagem_b:latest
      
    • Em seguida, faça o push da imagem:
      docker push <endereço_do_seu_harbor>/projeto/imagem_b:latest
      

Exemplo Prático

Suponha que o endereço do seu Harbor seja harbor.empresa.com e você tenha um projeto chamado interno:

  1. Taguear a imagem:

    docker tag imagem_b:latest harbor.empresa.com/interno/imagem_b:latest
    
  2. Fazer o push da imagem:

    docker push harbor.empresa.com/interno/imagem_b:latest
    

Dessa forma, a imagem imagem_b será enviada para o repositório privado do Harbor, enquanto a imagem_a pode ser enviada para o Docker Hub conforme descrito no curso.

Bons estudos!

Certo. Então, por padrão, se não informar nnehum harbor, o docker consulta/envia imagens para o dockerHub. Agora se eu desejar um outro repositório, aí basta informar, antes da imagem, o endereço do harbor. Isso?

Obrigado pela resposta.