Como configurar o Docker para trabalhar com diferentes registos

DockerBeginner
Pratique Agora

Introdução

Docker é uma poderosa plataforma de contentores que revolucionou a forma como as aplicações são construídas, implantadas e geridas. Um dos componentes chave do ecossistema Docker é o registo Docker, que funciona como um repositório para armazenar e distribuir imagens Docker. Neste tutorial, exploraremos como configurar o Docker para trabalhar com diferentes registos, incluindo registos privados e públicos, para gerir eficazmente as suas aplicações baseadas em Docker.

Introdução aos Registos Docker

Os registos Docker são repositórios centrais onde as imagens Docker são armazenadas e podem ser extraídas. Funcionam como a espinha dorsal do ecossistema Docker, permitindo que desenvolvedores e organizações partilhem, distribuam e gerem as suas imagens Docker. 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 é um serviço que armazena e distribui imagens Docker. Age como um local centralizado onde as imagens Docker são hospedadas e disponibilizadas para download. Quando cria uma imagem Docker, pode enviá-la para um registo e outros utilizadores ou sistemas podem, então, extrair essa imagem do registo para a utilizarem.

Tipos de Registos Docker

Existem dois tipos principais de registos Docker:

  1. Registos Públicos: Os registos públicos são acessíveis a qualquer pessoa na internet e são frequentemente utilizados para partilhar e distribuir imagens Docker populares e mantidas pela comunidade. O registo público mais conhecido é o Docker Hub, que é o registo predefinido utilizado pelo motor Docker.

  2. Registos Privados: Os registos privados são propriedade e geridos por organizações ou indivíduos, e o acesso a eles é normalmente restringido. São utilizados para armazenar e distribuir imagens Docker personalizadas e proprietárias dentro de uma organização ou de um grupo fechado de utilizadores.

Aceder a Registos Docker

Para interagir com um registo Docker, pode utilizar a ferramenta de linha de comandos docker. Os comandos básicos para trabalhar com registos são:

  • docker pull <image>: Extrai uma imagem Docker de um registo.
  • docker push <image>: Envia uma imagem Docker para um registo.
  • docker login <registry>: Autentica-se num registo Docker.
sequenceDiagram participant Desenvolvedor participant Motor Docker participant Registo Docker Desenvolvedor->>Motor Docker: docker build -t my-app . Motor Docker->>Registo Docker: docker push my-app:latest Motor Docker->>Registo Docker: docker pull my-app:latest

Compreendendo os fundamentos dos registos Docker, pode gerir e distribuir eficazmente as suas imagens Docker, garantindo implantações consistentes e fiáveis em diferentes ambientes.

Configurando o Docker para Múltiplos Registos

À medida que as suas aplicações baseadas em Docker crescem, poderá precisar de trabalhar com múltiplos registos Docker, públicos e privados. Nesta secção, exploraremos como configurar o Docker para interagir com diferentes registos e gerir as suas imagens Docker através destes registos.

Configurando o Demónio Docker

O demónio Docker pode ser configurado para trabalhar com múltiplos registos. Por defeito, o Docker utiliza o registo Docker Hub, mas pode configurar registos adicionais modificando o ficheiro de configuração do demónio Docker.

No Ubuntu 22.04, o ficheiro de configuração do demónio Docker encontra-se em /etc/docker/daemon.json. Pode editar este ficheiro para adicionar a configuração necessária para os seus registos adicionais.

Exemplo de configuração daemon.json:

{
  "registry-mirrors": ["https://mirror.gcr.io", "https://registry.example.com"],
  "insecure-registries": ["registry.example.com"]
}

Neste exemplo, adicionámos dois espelhos de registo (registry-mirrors) e um registo inseguro (insecure-registries). Após efetuar alterações ao ficheiro de configuração, é necessário reiniciar o demónio Docker para que as alterações entrem em vigor.

sudo systemctl restart docker

Autenticação em Múltiplos Registos

Para aceder a registos privados, precisa de se autenticar neles. Pode fazer isto utilizando o comando docker login, especificando a URL do registo.

docker login registry.example.com

Isto irá pedir-lhe que introduza o seu nome de utilizador e palavra-passe para o registo especificado.

Alternativamente, pode armazenar as credenciais do registo no armazenamento de credenciais do Docker, o que lhe permite autenticar-se em múltiplos registos sem ter de introduzir as credenciais cada vez.

docker login -u myusername -p mypassword registry.example.com

Gerenciando Imagens Através de Múltiplos Registos

Depois de configurar o Docker para trabalhar com múltiplos registos, pode gerir as suas imagens Docker através destes registos. Os comandos básicos para trabalhar com imagens em diferentes registos são:

  • docker pull <registry>/<image>:<tag>: Extrai uma imagem de um registo específico.
  • docker push <registry>/<image>:<tag>: Envia uma imagem para um registo específico.

Compreendendo como configurar o Docker para múltiplos registos e gerir as suas imagens Docker através destes registos, pode organizar e distribuir eficazmente as suas aplicações baseadas em Docker em ambientes complexos.

Cenários de Gestão de Registos no Mundo Real

Nesta secção, exploraremos alguns cenários do mundo real e as melhores práticas para gerir registos Docker na sua organização.

Cenário 1: Espelhamento de Registos Públicos

Muitas organizações preferem espelhar registos públicos, como o Docker Hub, para melhorar as velocidades de download e reduzir o uso da largura de banda da internet. Isto pode ser conseguido configurando um registo local como espelho.

## Executar um registo local
docker run -d -p 5000:5000 --restart=always --name registry registry:2

## Configurar o demónio Docker para usar o registo local como espelho
echo '{"registry-mirrors": ["http://localhost:5000"]}' | sudo tee /etc/docker/daemon.json
sudo systemctl restart docker

Agora, quando extrair imagens, o Docker verificará primeiro o espelho do registo local antes de extrair do registo público.

Cenário 2: Promoção de Imagens entre Registos

À medida que a sua aplicação evolui, poderá precisar de promover imagens Docker entre diferentes registos, como de um registo de desenvolvimento para um registo de produção. Pode conseguir isto utilizando os comandos docker pull e docker push.

## Extrair uma imagem do registo de desenvolvimento
docker pull dev-registry.example.com/my-app:v1

## Marcar a imagem para o registo de produção
docker tag dev-registry.example.com/my-app:v1 prod-registry.example.com/my-app:v1

## Enviar a imagem para o registo de produção
docker push prod-registry.example.com/my-app:v1

Este fluxo de trabalho permite gerir o ciclo de vida das suas imagens Docker em diferentes ambientes e registos.

Cenário 3: Segurança de Registos Privados

Quando trabalha com registos privados, é essencial garantir que o acesso está devidamente protegido. Pode utilizar funcionalidades como o controlo de acesso baseado em funções (RBAC) e a análise de vulnerabilidades de imagens para melhorar a segurança dos seus registos privados.

graph LR Desenvolvedor -- docker login --> Registo Privado Registo Privado -- RBAC --> Desenvolvedor Registo Privado -- Análise de Vulnerabilidades --> Desenvolvedor

Compreendendo e implementando estes cenários de gestão de registos do mundo real, pode organizar, distribuir e proteger eficazmente as suas imagens Docker na sua organização.

Resumo

No final deste tutorial, terá um conhecimento sólido de como configurar o Docker para trabalhar com múltiplos registos, permitindo-lhe gerir e implementar eficazmente as suas aplicações baseadas em Docker em diferentes ambientes. Irá aprender sobre cenários de gestão de registos do mundo real e as melhores práticas para manter uma infraestrutura Docker robusta e segura.