Instalando o Docker no Debian
Antes de rodar qualquer container — seja para uma aplicação isolada, seja como pré-requisito para um cluster Kubernetes — é preciso ter o Docker Engine instalado e configurado corretamente no servidor. Este artigo cobre a instalação completa no Debian, do zero até o primeiro container rodando.
Use
sudoantes dos comandos abaixo caso esteja executando como usuário comum (não como root).
Atualizando o sistema
Antes de instalar qualquer pacote novo, atualize a lista de pacotes e o sistema:
# apt update
# apt upgrade
Instalando pacotes necessários
Alguns pacotes são pré-requisitos para adicionar repositórios externos com segurança (chaves GPG, HTTPS, etc.):
# apt install curl gnupg2 apt-transport-https software-properties-common ca-certificates
Adicionando o repositório do Docker
Baixe e registre a chave GPG oficial do Docker:
# curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/trusted.gpg.d/docker.gpg
Crie o arquivo de repositório em /etc/apt/sources.list.d/docker.list:
deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/docker.gpg] https://download.docker.com/linux/debian bookworm stable
⚠️ Atenção à versão do Debian: o nome (
bookworm, no exemplo) precisa corresponder à versão do seu Debian —bookwormé o Debian 12,bullseyeé o Debian 11,busteré o Debian 10. Para descobrir qual é o codinome da sua instalação, rode:$ lsb_release -csE substitua
bookwormpelo valor retornado, caso esteja usando uma versão diferente.
Container runtime: Docker ou containerd?
Se o objetivo final é montar um cluster Kubernetes, vale uma pausa aqui: o Kubernetes não usa o Docker diretamente como runtime desde a versão 1.24 — ele depende do containerd (que, inclusive, já vem junto com a instalação do Docker Engine, mas também pode ser instalado isoladamente). Se esse for o seu caso, siga direto para o artigo de instalação do Kubernetes, que cobre a instalação do containerd especificamente para esse cenário.
Se o objetivo é usar o Docker Engine completo (para rodar containers isolados, Docker Compose, etc.), continue com os passos abaixo.
Instalando o Docker
# apt update
# apt install docker-ce
Se você tiver problemas ao executar containers com a versão mais recente, é possível instalar uma versão anterior conhecida por ser estável, como a 18.06.0:
# apt install docker-ce=18.06.0~ce~3-0~debian
Configurando o daemon
Crie o arquivo /etc/docker/daemon.json com as seguintes configurações:
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
Essa configuração:
- Usa o
systemdcomo cgroup driver (importante para manter consistência com outros serviços gerenciados porsystemdno sistema, incluindo o próprio Kubernetes, caso você venha a instalá-lo depois); - Limita o tamanho dos logs de cada container a 100MB, evitando que containers "barulhentos" encham o disco com logs;
- Usa o driver de armazenamento
overlay2, recomendado atualmente para a maioria dos casos.
Crie o diretório de override do serviço systemd do Docker:
# mkdir -p /etc/systemd/system/docker.service.d
Recarregue e reinicie o serviço:
systemctl daemon-reload
systemctl restart docker
Permitindo uso do Docker por um usuário comum
Por padrão, comandos do Docker exigem privilégios de root. Para permitir que um usuário comum rode containers sem precisar de sudo em todo comando, adicione-o ao grupo docker:
# usermod -aG docker $USER
É necessário fazer logout e login novamente (ou reiniciar a sessão) para que a mudança de grupo tenha efeito.
Verificando a instalação
Confirme que o Docker está instalado e funcionando:
$ docker version
A saída deve ser parecida com:
Client:
Version: 18.06.0-ce
API version: 1.38
Go version: go1.10.3
Git commit: 0ffa825
Built: Wed Jul 18 19:09:33 2018
OS/Arch: linux/amd64
Experimental: false
Server:
Engine:
Version: 18.06.0-ce
API version: 1.38 (minimum version 1.12)
Go version: go1.10.3
Git commit: 0ffa825
Built: Wed Jul 18 19:07:38 2018
OS/Arch: linux/amd64
Experimental: false
A versão exibida vai variar conforme a versão instalada no seu sistema — o exemplo acima reflete a versão 18.06.0.
Rodando o primeiro container
O teste clássico, usando a imagem oficial de exemplo do Docker:
$ docker run hello-world
Ou, para um teste um pouco mais tangível, subindo um servidor web Apache (httpd) na porta 80:
$ docker run --rm -p 80:80 httpd
Para confirmar que funcionou, acesse pelo navegador o IP da máquina host:
http://127.0.0.1
Se a página padrão do Apache aparecer, a instalação do Docker está completa e funcionando corretamente.
Considerações finais
Com o Docker instalado, configurado com o cgroup driver correto e testado com sucesso, o servidor já está pronto tanto para rodar containers isolados no dia a dia quanto para servir de base para instalações mais avançadas — como o próprio Kubernetes, que reaproveita o containerd já presente nessa instalação.
Top comments (0)