Table of Contents
Instalação do Docker no Debian 12
Introdução
Este tutorial descreve os passos necessários para instalar o Docker no Debian de forma prática e personalizada, incluindo a configuração de partições, instalação de dependências e alteração da rede com suporte a IPv6. Ao seguir este guia, você estará preparado para utilizar o Docker em diferentes cenários, ajustando a instalação conforme suas necessidades. Clique no link para saber mais sobre o Docker Introdução ao Docker: Conceitos e Arquitetura.
Criando uma Partição para os Containers
Se você está instalando o Docker em um ambiente virtualizado, como KVM, o disco pode ter uma nomeclatura diferente, como /dev/vdb. Caso esteja utilizando um sistema físico, o dispositivo pode ser diferente, como /dev/sda. Este passo é opcional, mas útil quando você deseja separar os dados dos containers em um disco dedicado.
Passos:
1. Crie uma nova partição no disco de destino:
MOUNT_POINT=/var/lib/docker DISK_DEVICE=/dev/vdb # Alterar conforme seu dispositivo echo -e "n\np\n1\n\n\nw" | sudo fdisk ${DISK_DEVICE}
2. Formate a partição recém-criada como ext4:
sudo mkfs.ext4 ${DISK_DEVICE}1
3. Monte o disco na pasta de containers do Docker:
UUID=$(sudo blkid -o export ${DISK_DEVICE}1 | grep UUID | grep -v PARTUUID) sudo mkdir -p ${MOUNT_POINT} sudo cp -p /etc/fstab{,.dist} echo "${UUID} ${MOUNT_POINT} ext4 defaults 1 2" | sudo tee -a /etc/fstab sudo mount ${MOUNT_POINT}
4. Verifique se o disco foi montado corretamente:
df -hT | grep docker
Certifique-se de que o UUID da partição está correto e que o ponto de montagem está acessível.
Instalação do Docker
Atualizando os Pacotes do Sistema
Antes de instalar o Docker, é fundamental garantir que seu sistema esteja atualizado. Execute os seguintes comandos para atualizar os pacotes:
sudo apt update sudo apt upgrade
Isso garantirá que você tenha as versões mais recentes de todos os pacotes e dependências necessárias para a instalação do Docker.
Instalando Dependências
Para que o Docker funcione corretamente no Debian, você precisará instalar algumas dependências essenciais. Elas garantem que o sistema possa se comunicar com repositórios externos de maneira segura e reconheça os pacotes Docker.
Execute o comando abaixo para instalar essas dependências:
sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release
Explicação:
apt-transport-https: Necessário para permitir que oaptacesse repositórios via HTTPS.ca-certificates: Instala os certificados de CA (Certificate Authority), que validam a comunicação segura com servidores HTTPS.curl: Ferramenta de linha de comando para transferir dados usando vários protocolos, incluindo o download de chaves GPG.gnupg: Conjunto de ferramentas para gerenciamento de chaves criptográficas.lsb-release: Fornece informações sobre a distribuição do sistema, útil para garantir a compatibilidade dos pacotes.
Adicionando a Chave GPG e o Repositório Docker
A chave GPG oficial do Docker é necessária para garantir que os pacotes instalados a partir do repositório Docker sejam autênticos e não tenham sido modificados.
Use o comando abaixo para adicionar a chave GPG oficial:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Explicação:
curl -fsSL: Baixa o arquivo de forma silenciosa (-s), sem erros (-f), e imprime o conteúdo diretamente (-L).gpg –dearmor: Converte a chave GPG baixada no formato necessário para ser utilizada pelo sistema.
Adicionando o Repositório Docker
Agora que a chave GPG foi adicionada, precisamos configurar o repositório Docker no Debian, para garantir que sempre obteremos a versão mais recente e estável do Docker diretamente da fonte oficial.
Adicione o repositório com o seguinte comando:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Explicação:
dpkg –print-architecture: Retorna a arquitetura do sistema (por exemplo, amd64), garantindo que você baixe a versão correta.lsb_release -cs: Retorna o codinome da versão do Debian (ex: buster, bullseye), para configurar o repositório de acordo com sua versão.signed-by: Especifica o arquivo da chave GPG para garantir a autenticidade dos pacotes.
Após adicionar o repositório, atualize a lista de pacotes com o novo repositório:
sudo apt update
Instalando o Docker
Agora que as dependências e o repositório Docker estão configurados, você pode instalar o Docker e seus componentes principais. Execute o seguinte comando para realizar a instalação:
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
Componentes Instalados:
docker-ce: Docker Community Edition, a versão estável e gratuita do Docker.docker-ce-cli: Ferramentas de linha de comando para interagir com o Docker.containerd.io: Serviço para gerenciar containers em segundo plano.docker-compose-plugin: Ferramenta para trabalhar com múltiplos containers usando arquivos YAML.
Adicionando o Usuário ao Grupo Docker
Para evitar ter que usar o comando sudo sempre que executar o Docker, você pode adicionar seu usuário ao grupo docker. Isso permite que você execute comandos do Docker diretamente, sem precisar de permissões administrativas.
Adicione seu usuário ao grupo com o comando:
sudo usermod -aG docker $USER
Após isso, é necessário sair da sessão e entrar novamente para que as alterações tenham efeito. Caso você não queira sair e entrar, pode aplicar a mudança imediatamente com o seguinte comando:
newgrp docker
Explicação:
usermod -aG docker $USER: Adiciona o usuário atual (`$USER`) ao grupo `docker`, preservando os grupos atuais do usuário.newgrp docker: Atualiza a sessão atual para refletir as mudanças de grupos, sem a necessidade de reiniciar ou fazer logout/login.
Nota de Segurança: Mesmo que isso simplifique o uso do Docker, adicionar usuários ao grupo `docker` pode representar um risco de segurança, pois quem faz parte deste grupo tem permissões equivalentes ao `root`. Para ambientes de produção, considere alternativas seguras.
Verificando a Instalação do Docker
Agora que o Docker está instalado, vamos garantir que ele esteja funcionando corretamente. Siga os passos abaixo para verificar a instalação:
1. Verifique a versão do Docker:
Este comando exibe a versão do Docker que foi instalada, garantindo que o pacote foi instalado corretamente:
docker --version
2. Execute o contêiner de teste:
O contêiner `hello-world` é uma maneira rápida e fácil de testar se o Docker está funcionando conforme esperado. Execute o contêiner de teste com o comando:
docker run hello-world
Se a instalação estiver correta, você verá uma mensagem confirmando que o Docker foi instalado com sucesso e que o contêiner de teste foi executado.
3. Verifique o status do serviço Docker (opcional):
Verifique se o serviço do Docker está rodando corretamente:
sudo systemctl status docker
Se todas as verificações passarem sem erros, o Docker foi instalado com sucesso e está pronto para ser usado.
Alterando a Rede Padrão do Docker e Habilitando o IPv6
Se você precisa alterar a configuração de rede padrão do Docker e habilitar o suporte a IPv6, é possível fazer isso modificando o arquivo de configuração do Docker (daemon.json). Esta configuração permite definir endereços IPv6, redes personalizadas e faixas de endereçamento.
Passos para Configuração:
1. Modifique o arquivo `daemon.json`:
Para alterar as configurações de rede do Docker, edite ou crie o arquivo /etc/docker/daemon.json com o seguinte conteúdo:
{
"ipv6": true,
"ip6tables": true,
"experimental": true,
"fixed-cidr-v6": "fd00::/64",
"default-address-pools": [
{"base": "192.168.0.0/16", "size": 24},
{"base": "fd00::/56", "size": 64}
]
}
Explicação:
“ipv6”: true: Habilita o suporte a IPv6 no Docker.“ip6tables”: true: Permite o uso de `ip6tables` para filtrar pacotes IPv6.“experimental”: true: Ativa recursos experimentais no Docker.“fixed-cidr-v6”: “fd00::/64”: Define uma faixa fixa de endereços IPv6 para uso pelos containers.“default-address-pools”: Define faixas de endereços para redes IPv4 e IPv6, que serão usadas ao criar redes Docker personalizadas.
2. Reinicie o serviço Docker:
Após modificar o arquivo de configuração, é necessário reiniciar o serviço Docker para aplicar as mudanças:
sudo systemctl restart docker
3. Verifique a nova configuração de rede:
Para garantir que o Docker está usando a nova configuração de rede, execute o seguinte comando para listar as interfaces de rede:
ip -br a s docker0
Isso indica que a interface `docker0` foi configurada com IPv4 e IPv6.
4. Criando uma rede Docker personalizada com IPv6:
Agora você pode criar uma rede personalizada no Docker, definindo faixas de endereçamento IPv4 e IPv6:
docker network create --subnet="192.168.1.0/24" --gateway="192.168.1.1" \ --subnet="fd00:0:0:1::/64" --gateway="fd00:0:0:1::1" --ipv6 zbx-network
Explicação:
–subnet: Define a faixa de endereçamento da rede para IPv4 e IPv6.–gateway: Especifica o gateway para ambas as redes (IPv4 e IPv6).–ipv6: Habilita o suporte a IPv6 na nova rede.zbx-network: Nome da rede Docker criada.
A configuração de redes personalizadas e o uso de IPv6 são particularmente úteis em ambientes que requerem maior controle sobre a topologia de rede, como em clusters ou quando múltiplas redes precisam ser separadas. Para ambientes de produção, considere configurar regras adequadas de firewall e monitoramento de rede.
Conclusão
Este tutorial guiou você pela instalação do Docker no Debian, desde a criação de partições (opcional), atualização de pacotes, instalação de dependências, configuração do repositório Docker, até a alteração da rede padrão e suporte a IPv6 (opcional). Seguindo estes passos, você estará pronto para começar a usar o Docker em seu sistema.
