Instalando Docker Engine no Linux
LinuxTutorial baseado em Install Docker Engine on Debian e Install Docker Engine on Ubuntu.
Conteúdo
1. Desinstalando Versões Antigas
Caso tenha versões antigas do Docker Engine instaladas, é bom removê-las antes de começar. Para isso execute o comando abaixo:
sudo apt remove docker docker-engine docker.io containerd runc -y
Caso não tenha versões antigas o apt vai relatar que nenhum desses pacotes está instalado.
O conteúdo de /var/lib/docker/
, incluindo imagens, containers, volumes e redes, é preservado. O pacote do Docker Engine agora é denominado docker-ce.
2. Configurando o Repositório
Execute os comandos abaixo para permitir que o apt use um repositório sobre HTTPS:
sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release -y
Adicione a chave GPG oficial do Docker
Para o Debian:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Para o Ubuntu:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Use o seguinte comando para configurar o repositório estável:
Para o Debian:
echo "deb [arch=amd64 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
Para o Ubuntu:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Como adicionamos um repositório, vamos atualizar as informações do banco de dados de pacotes:
sudo apt update
3. Instalando Docker Engine
Execute os comandos abaixo para instalar os pacotes do Docker Engine:
sudo apt install docker-ce docker-ce-cli containerd.io -y
4. Alterando Rede Padrão
Este é um passo opcional. Por padrão o docker utiliza a rede 172.16.0.0/12, que pode já estar sendo utilizada por outros serviços.
Para alterar a rede do docker basta criar o arquivo daemon.json
, no diretório /etc/docker/
, com as novas configurações de rede, um exemplo seria:
{
"bip": "10.220.0.1/16",
"mtu": 1500
}
Para aplicar a alteração reinicie o docker com o comando abaixo:
sudo systemctl restart docker
Lembrando que o docker permite muitas outras configurações de rede.
5. Configurando Proxy da Rede
Este é um passo opcional, só faça se estiver utilizando um proxy no ambiente Linux.
Se você estiver usando um proxy vai precisa configurar as variáveis de ambiente HTTP_PROXY e HTTPS_PROXY.
Existem algumas maneiras de executar isso, vamos fazer através do systemd.
Primeiro crie o diretório docker.service.d
com o comando abaixo:
sudo mkdir -p /etc/systemd/system/docker.service.d
Crie dentro deste diretório o arquivo http-proxy.conf
contendo as informações abaixo. Substitua proxy.example.com:80 e proxy.example.com:443 com as informações do seu servidor proxy:
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:80"
Environment="HTTPS_PROXY=https://proxy.example.com:443"
Recomendo sempre configurar ambas as variáveis, caso não possua um proxy diferenciado para o HTTPS_PROXY use o mesmo valor do HTTP_PROXY.
Em seguida, basta aplicar as alterações e reiniciar o docker com os comandos:
sudo systemctl daemon-reload
sudo systemctl restart docker
6. Verificando a Instalação
Agora já podemos verificar se o Docker Engine está instalado corretamente.
Para isso vamos executar a imagem hello-world com o comando abaixo:
sudo docker run hello-world
Este comando baixa uma imagem de teste e a executa em um container. Quando o container é executado, ele imprime uma mensagem e sai.
Se tudo estiver correto, ao executar a imagem hello-world você vai ter uma saída como da figura abaixo:
7. Gerenciar o Docker como um Usuário Não Root
Se você não quiser usar o docker com sudo, basta adicionar usuários ao grupo docker.
Adicionando o usuário atual ao grupo docker:
sudo usermod -aG docker $USER
Execute o comando a seguir para ativar as mudanças no grupo:
newgrp docker
Verifique se você pode executar comandos docker sem sudo com a imagem hello-world:
docker run hello-world
Se tiver erros de permissões referente ao diretório ~/.docker/
, execute os comandos abaixo:
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R
8. Desinstalando o Docker Engine
Desinstale os pacotes Docker Engine, CLI e Containerd:
sudo apt purge docker-ce docker-ce-cli containerd.io -y
Imagens, containers, volumes ou arquivos de configuração customizados em seu host não são removidos automaticamente.
Para excluir todas as imagens, containers e volumes:
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd