Instalação do Docker em Sistemas Linux: Métodos e Configurações
Este guia aborda a instalação do Docker utilizando abordagens binárias e gerenciadores de pacotes, além de configurações essenciais para ambientes Linux.
Instalação via Binário
Este método envolve o download direto do executável do Docker e a configuração manual do serviço.
# Verificar pacotes Docker existentes
rpm -qa | grep docker
# Interromper o serviço, se ativo
sudo systemctl stop docker
# Remover pacotes Docker previamente instalados
sudo yum remove -y docker-ce docker-ce-cli containerd.io
# Obter o pacote binário do Docker (exemplo com versão mais recente)
wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.9.tgz
# Extrair os arquivos
tar -xzf docker-20.10.9.tgz
# Mover os binários para um diretório no PATH
sudo cp docker/* /usr/local/bin/
# Criar o arquivo de serviço do systemd
sudo tee /etc/systemd/system/docker.service > /dev/null <<'EOF'
[Unit]
Description=Motor de Contêineres Docker
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/local/bin/dockerd --log-level=info $OPCOES_REDE
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=1048576
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
RestartSec=10
StartLimitBurst=3
StartLimitInterval=120s
[Install]
WantedBy=multi-user.target
EOF
# Definir a configuração do daemon
sudo tee /etc/docker/daemon.json > /dev/null <<EOF
{
"registry-mirrors": ["https://mirror.example.com"],
"data-root": "/opt/docker-storage"
}
EOF
# Encerrar processos Docker residuais, se necessário
sudo pkill -f dockerd
# Recarregar as configurações do systemd, iniciar o serviço e habilitá-lo na inicialização
sudo systemctl daemon-reload
sudo systemctl start docker
sudo systemctl enable docker
Se ocorrer eros ao habilitar o serviço, instale dependências adicionasi: sudo yum install -y yum-utils device-mapper-persistent-data lvm2.
Diretórios importantes: /usr/local/bin contém executáveis do usuário e tem prioridade sobre /usr/bin no PATH. Arquivos de serviço em /etc/systemd/system sobrepõem aqueles em /lib/systemd/system.
Instalação via YUM (para CentOS/RHEL)
Utilize o gerenciador de pacotes YUM para instalar ou gerenciar versões do Docker.
# Interromper o serviço Docker
sudo systemctl stop docker
# Remover pacotes Docker
sudo yum remove -y docker-ce docker-ce-cli containerd.io
# Instalar uma versão específica do Docker
sudo yum install -y docker-ce-20.10.9 docker-ce-cli-20.10.9 containerd.io
# Para downgrade, use o comando abaixo (recomendado sobre remoção)
sudo yum downgrade --setopt=obsoletes=0 -y docker-ce-20.10.9 docker-ce-cli-20.10.9 containerd.io
Para resolver dependências manualmente, use rpm -ivh pacote.rpm --nodeps --force, mas isso pode causar instabilidades.
Instalação via APT (para Debian/Ubuntu)
Para sistemas baseados em Debian, utilize o APT para gerenciar a instalação do Docker.
# Remover versões antigas do Docker
sudo apt-get remove docker docker-engine docker.io
# Atualizar o índice de pacotes
sudo apt-get update
# Instalar versões específicas do Docker
sudo apt-get install docker-ce=5:20.10.9~3-0~ubuntu-focal docker-ce-cli=5:20.10.9~3-0~ubuntu-focal containerd.io
# Habilitar e iniciar o serviço
sudo systemctl enable docker
sudo systemctl start docker
Gerenciamento de Usuários do Docker
Controle o acesso ao Docker criando grupos e adicionando usuários.
# Criar um grupo para o Docker
sudo groupadd docker-users
# Adicionar um usuário ao grupo
sudo usermod -aG docker-users usuario1
# Verificar os membros do grupo
grep docker-users /etc/group
Configuração de Fontes de Aceleração
Para melhorar a velocidade de download de imagens, configure espelhos no arquivo /etc/docker/daemon.json.
{
"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://registry.docker-cn.com",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.ccs.tencentyun.com"
]
}
Recursos Adicionais
Para mais informações, consulte a documentação oficial do Docker ou guias comunitários.