Skip to content

Instalação e Hardening do Docker no Debian 12

O Debian 12 (Bookworm) é uma das distribuições mais sólidas para servidores de produção. Neste guia prático, vamos configurar o repositório oficial do Docker, instalar os pacotes essenciais e aplicar configurações recomendadas para hardening e rotação de logs.


1. Pré-requisitos e Limpeza

Antes de começar, certifique-se de que pacotes conflitantes ou versões antigas não estejam instaladas:

bash
sudo apt update
sudo apt remove -y docker.io containerd runc

Instale os utilitários necessários para comunicação segura com repositórios APT:

bash
sudo apt install -y ca-certificates curl gnupg lsb-release

2. Adicionando o Repositório Oficial do Docker

Crie o diretório de chaves do APT e adicione a chave GPG oficial do projeto Docker:

bash
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

Adicione o repositório nas listas de fontes:

bash
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

3. Instalação dos Pacotes

Atualize o índice de pacotes e instale o Docker Engine, CLI, Containerd e o plugin Compose:

bash
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Verifique se o serviço está ativo:

bash
sudo systemctl status docker --no-pager

4. Hardening do Daemon (daemon.json)

Por padrão, os logs do Docker podem crescer indefinidamente até esgotar o espaço em disco do servidor. Além disso, habilitar recursos de isolamento aumenta a segurança geral.

Crie ou edite o arquivo /etc/docker/daemon.json:

json
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "50m",
    "max-file": "3"
  },
  "live-restore": true,
  "userland-proxy": false,
  "no-new-privileges": true
}

💡 Dica de Produção

O parâmetro "live-restore": true permite que os containers continuem executando mesmo quando o daemon do Docker for reiniciado ou atualizado!

Aplique as alterações reiniciando o serviço:

bash
sudo systemctl restart docker

5. Testando o Ambiente

Execute o container de teste para certificar que o ecossistema está operando corretamente:

bash
docker run --rm hello-world

Parabéns! Seu host Debian 12 agora possui um ambiente Docker robusto, seguro e com controle de armazenamento de logs configurado.