4.5 KiB
MANUAL TÉCNICO - INSTALAÇÃO E CONFIGURAÇÃO DO DOCKER E COMPOSE (LINUX)
Código: ITGSUP 0007/26 | Classificação: RESTRITO Responsável: João Pedro Toledo Gonçalves | Data: {{DATA_ATUAL}}
1. HISTÓRICO DE REVISÃO
⚠️ REGRA DE OURO:
- Autor: João Pedro Toledo Gonçalves.
- Descrição: Criação do documento.
| Data | Versão | Descrição | Autor |
|---|---|---|---|
| {{DATA_ATUAL}} | 1.0 | Criação Inicial | João Pedro Toledo Gonçalves |
2. OBJETIVO
Padronizar a instalação do Docker Engine e Docker Compose em servidores Linux (Ubuntu/Debian), garantindo suporte oficial e atualizações seguras.
3. PRÉ-REQUISITOS
Liste o que é necessário ANTES de começar.
- Acesso ao servidor via SSH.
- Usuário com privilégios de
sudoouroot. - Conexão com a internet liberada (Portas 80/443).
- Sistema Operacional compatível (Ubuntu 20.04+, Debian 11+).
4. PASSO A PASSO (EXECUÇÃO)
Etapa 1: Preparação do Ambiente e Repositórios
- Atualize o índice de pacotes e instale as dependências essenciais para HTTPS.
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
- Adicione a chave GPG oficial do Docker para garantir a autenticidade dos pacotes.
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
- Configure o repositório estável.
ℹ️ NOTA: O comando abaixo detecta automaticamente a versão do OS (
lsb_release).
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Etapa 2: Instalação dos Pacotes
- Atualize novamente o índice (agora com o repo do Docker) e instale o Engine, CLI e plugins.
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Etapa 3: Pós-Instalação (Permissões)
⚠️ IMPORTANTE: Execute isso para não precisar usar
sudoem todo comando docker.
- Adicione seu usuário atual ao grupo
docker. - Aplique a mudança de grupo na sessão atual.
sudo usermod -aG docker $USER
newgrp docker
Etapa 4: Validação (Hello World)
- Execute o container de teste para validar a instalação completa.
docker run hello-world
- O resultado esperado deve ser idêntico ao bloco abaixo:
[!NOTE] Sucesso na execução do Docker.
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.
5. SOLUÇÃO DE PROBLEMAS (TROUBLESHOOTING)
Problema 1: "permission denied while trying to connect to the Docker daemon socket"
- Causa: O usuário não está no grupo
dockerou a sessão não foi atualizada. - Solução:
- Execute
sudo usermod -aG docker $USER. - Faça logoff e login novamente ou use
newgrp docker.
- Execute
Problema 2: Erro de GPG ou Repositório não encontrado
- Causa: Chave expirada ou OS não suportado.
- Solução:
- Verifique se o codename do OS em
/etc/os-releaseé compatível (focal, jammy, bullseye, bookworm). - Remova o arquivo
/etc/apt/sources.list.d/docker.liste refaça a Etapa 1.
- Verifique se o codename do OS em
6. DADOS TÉCNICOS
| Campo | Valor | Descrição |
|---|---|---|
| Serviço | docker.service |
Nome do serviço no Systemd |
| Config | /etc/docker/daemon.json |
Arquivo principal de configuração |
| Dados | /var/lib/docker |
Local padrão de imagens e volumes |
| Socket | /var/run/docker.sock |
Socket de comunicação da API |
7. VALIDAÇÃO FINAL (Definição de Pronto)
- O comando
docker run hello-worldfunciona sem sudo? - O comando
docker compose versionretorna a versão (ex: v2.x.x)? - O serviço está ativo? (
sudo systemctl status dockermostra active (running))