Introdução
Docker é uma plataforma popular de contentores que permite aos desenvolvedores empacotar e implantar aplicações de forma consistente e repetível. Um dos componentes chave do ecossistema Docker é o registo Docker, que funciona como um repositório para armazenar e distribuir imagens Docker. Neste tutorial, aprenderá a alternar entre o Docker Hub público e um registo Docker privado, garantindo que as suas implantações Docker sejam seguras e flexíveis.
Introdução aos Registos Docker
Os registos Docker são centros onde as imagens Docker são armazenadas e distribuídas. Funcionam como a espinha dorsal do ecossistema Docker, permitindo que desenvolvedores e organizações geriem e partilhem as suas aplicações em contentores. Nesta secção, exploraremos os fundamentos dos registos Docker, o seu propósito e os diferentes tipos de registos disponíveis.
O que é um Registo Docker?
Um registo Docker é uma aplicação do lado do servidor que armazena e distribui imagens Docker. Age como um repositório onde as imagens Docker são empurradas, puxadas e partilhadas entre utilizadores e equipas. Os registos Docker permitem a distribuição e implantação de aplicações em contentores em diferentes ambientes, desde o desenvolvimento à produção.
Tipos de Registos Docker
Existem dois tipos principais de registos Docker:
Registos Públicos: Os registos públicos, como o Docker Hub, são acessíveis a qualquer pessoa na internet. Fornecem uma vasta coleção de imagens Docker pré-construídas que os desenvolvedores podem usar como ponto de partida para as suas próprias aplicações.
Registos Privados: Os registos privados são propriedade e geridos por organizações ou equipas individuais. Permitem hospedar as suas próprias imagens Docker personalizadas, garantindo maior controlo e segurança sobre os artefactos da sua aplicação.
Benefícios da Utilização de Registos Docker
Os registos Docker oferecem vários benefícios a desenvolvedores e organizações:
Armazenamento Centralizado de Imagens: Os registos Docker fornecem um local centralizado para armazenar e gerir imagens Docker, tornando mais fácil partilhar e distribuir as suas aplicações.
Controlo de Versões e Etiquetas: Os registos permitem etiquetar e controlar as versões das suas imagens Docker, permitindo uma melhor organização e acompanhamento da evolução da sua aplicação.
Escalabilidade e Alta Disponibilidade: Registos Docker robustos podem lidar com grandes volumes de puxadas e empurrões de imagens, garantindo que as suas aplicações possam escalar e manter-se altamente disponíveis.
Segurança e Controlo de Acesso: Os registos privados oferecem funcionalidades de segurança melhoradas, como controlo de acesso e autenticação, para proteger as imagens de contentores sensíveis da sua organização.
Construção e Implantação Automatizadas: Os registos Docker podem ser integrados com pipelines de integração contínua (CI) e implantação contínua (CD), simplificando os processos de construção e implantação da sua aplicação.
Compreendendo os fundamentos dos registos Docker, pode gerir e distribuir eficazmente as suas aplicações em contentores, garantindo implantações consistentes e fiáveis em diferentes ambientes.
Aceder ao Docker Hub
O Docker Hub é o maior registo público mundial para imagens Docker, fornecendo uma vasta coleção de imagens pré-construídas que os desenvolvedores podem usar como ponto de partida para as suas próprias aplicações. Nesta secção, exploraremos como aceder e interagir com o Docker Hub.
Registo numa Conta Docker Hub
Para aceder ao Docker Hub, precisa de criar uma conta. Pode registar-se numa conta gratuita do Docker Hub visitando o site do Docker Hub e clicando no botão "Sign Up".
Efetuar Login no Docker Hub
Depois de ter uma conta Docker Hub, pode efetuar login no registo usando a CLI Docker. Abra um terminal e execute o seguinte comando:
docker login
Isto irá pedir-lhe que introduza o seu nome de utilizador e palavra-passe do Docker Hub. Após a autenticação bem-sucedida, pode começar a interagir com o Docker Hub.
Procurar Imagens Docker
Para procurar imagens Docker no Docker Hub, pode usar o comando docker search. Por exemplo, para procurar a imagem oficial Ubuntu, execute:
docker search ubuntu
Isto irá apresentar uma lista de imagens baseadas em Ubuntu disponíveis, incluindo as suas descrições, o número de estrelas (uma medida de popularidade) e o número de puxadas.
Puxar Imagens Docker
Para puxar uma imagem Docker do Docker Hub, utilize o comando docker pull seguido do nome da imagem. Por exemplo, para puxar a imagem Ubuntu mais recente, execute:
docker pull ubuntu:latest
Isto irá descarregar a imagem especificada do Docker Hub e armazená-la no seu computador local, pronta para ser usada nos seus contentores Docker.
Empurrar Imagens Docker
Se tiver criado as suas próprias imagens Docker, pode empurrá-las para o Docker Hub para as partilhar com outros. Primeiro, precisa de etiquetar a sua imagem local com o repositório e nome de utilizador apropriados do Docker Hub. Por exemplo:
docker tag my-image username/my-image:latest
Em seguida, pode empurrar a imagem para o Docker Hub usando o comando docker push:
docker push username/my-image:latest
Dominando os fundamentos de acesso e interação com o Docker Hub, pode tirar partido do vasto ecossistema de imagens Docker pré-construídas e gerir eficientemente a distribuição das suas próprias aplicações em contentores.
Configurando um Registo Privado
Embora o Docker Hub forneça um registo público conveniente, pode haver situações em que precisa de configurar um registo privado para hospedar as imagens Docker personalizadas da sua organização. Nesta secção, guiá-lo-emos através do processo de configuração de um registo Docker privado.
Implementando um Registo Privado
Para implementar um registo Docker privado, pode utilizar a imagem oficial do Docker Registry. Primeiro, extraia a imagem do registo do Docker Hub:
docker pull registry:2
Em seguida, execute o contêiner do registo usando o seguinte comando:
docker run -d --name registry -p 5000:5000 registry:2
Isto iniciará um registo Docker privado no seu computador local, a escutar na porta 5000.
Empurrar Imagens para o Registo Privado
Para empurrar as suas imagens Docker para o registo privado, precisa de etiquetá-las com o URL do registo apropriado. Supondo que o seu registo privado está a funcionar em localhost:5000, pode etiquetar uma imagem assim:
docker tag my-image localhost:5000/my-image:latest
Em seguida, empurre a imagem para o registo privado:
docker push localhost:5000/my-image:latest
Puxar Imagens do Registo Privado
Para puxar uma imagem do seu registo privado, utilize o seguinte comando:
docker pull localhost:5000/my-image:latest
Segurança do Registo Privado
Por defeito, o registo privado não está protegido, o que significa que qualquer pessoa pode aceder e interagir com ele. Para melhorar a segurança do seu registo privado, pode configurá-lo para utilizar HTTPS e implementar autenticação.
Ativar HTTPS
Para ativar HTTPS para o seu registo privado, precisa de fornecer um certificado SSL/TLS válido. Pode utilizar um certificado autoassinado ou obter um de uma Autoridade de Certificação (CA) de confiança.
Depois de ter os ficheiros de certificado e chave, pode executar o contêiner do registo com o seguinte comando:
docker run -d --name registry \
-p 5000:5000 \
-v /path/to/certs:/certs \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
registry:2
Isto iniciará o contêiner do registo com HTTPS ativado.
Implementar Autenticação
Para adicionar autenticação ao seu registo privado, pode utilizar o mecanismo de autenticação básica integrado do Docker Registry. Isto envolve criar um ficheiro de palavra-passe e executar o contêiner do registo com as variáveis de ambiente apropriadas.
Configurando um registo Docker privado, pode manter maior controlo sobre as imagens de contentores da sua organização, garantindo a segurança e integridade das suas aplicações.
Resumo
Seguindo este tutorial, irá adquirir o conhecimento necessário para alternar sem problemas entre o Docker Hub e um registo Docker privado. Isto permitirá tirar partido das vantagens de registos públicos e privados, garantindo que as suas implantações Docker são seguras, escaláveis e adaptadas às suas necessidades específicas.



