Este guia explica como instalar Docker e Docker Compose no seu VPS Linux. Docker é uma plataforma de contentores que simplifica a implementação e gestão de aplicações.
📋 Pré-requisitos
- VPS Linux com acesso root ou sudo
- Ubuntu 20.04+ ou Debian 11+ (ou CentOS 7+/RHEL 7+)
- Pelo menos 1 GB de RAM (2 GB recomendado)
- Ligação estável à Internet
💡 Recomendação de infraestrutura
O Docker requer discos rápidos para compilações e I/O intensivo. Recomendamos o nosso VPS NVMe para desempenho ótimo.
⚠️ Antes da instalação
- Verifique o sistema: Docker requer arquitetura 64 bits
- Faça backup dos dados: a instalação pode alterar configurações do sistema
- Tempo estimado: 5 a 10 minutos
🔧 Instalação no Ubuntu/Debian
Passo 1: Atualizar o sistema
Bashsudo apt update sudo apt upgrade -y
Passo 2: Instalar dependências
Bash1sudo apt install -y \ 2 ca-certificates \ 3 curl \ 4 gnupg \ 5 lsb-release
Passo 3: Adicionar chave GPG oficial do Docker
Bashsudo 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
Passo 4: Configurar repositório Docker
Bashecho \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Passo 5: Instalar Docker Engine
Bashsudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Passo 6: Verificar instalação
Bashsudo docker --version sudo docker compose version
🔧 Instalação no CentOS/RHEL
Bash1sudo yum update -y 2sudo yum install -y yum-utils 3sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 4sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin 5sudo systemctl start docker 6sudo systemctl enable docker 7sudo docker --version 8sudo docker compose version
👤 Configurar permissões
Por predefinição, Docker requer privilégios root. Para executar sem sudo:
Bashsudo usermod -aG docker $USER newgrp docker
Importante: Após adicionar o utilizador ao grupo docker, termine sessão e volte a entrar para as alterações terem efeito.
Bashdocker run hello-world
🧪 Testar Docker
Bashdocker run hello-world docker ps docker ps -a docker images
📦 Comandos essenciais
Gestão de imagens
Bashdocker pull image-name:tag docker images docker rmi image-name docker image prune -a
Gestão de contentores
Bash1docker run image-name 2docker run -d image-name 3docker ps 4docker stop container-id 5docker start container-id 6docker restart container-id 7docker rm container-id 8docker logs container-id 9docker exec -it container-id /bin/bash
Docker Compose
Bash1docker compose up 2docker compose up -d 3docker compose down 4docker compose logs 5docker compose build
🔒 Segurança do Docker
Crie ou edite /etc/docker/daemon.json:
JSON1{ 2 "log-driver": "json-file", 3 "log-opts": { 4 "max-size": "10m", 5 "max-file": "3" 6 } 7}
Bashsudo systemctl restart docker
Utilizadores no grupo docker têm privilégios equivalentes a root. Limite o acesso a utilizadores de confiança.
🔄 Atualizar Docker
Bash1# Ubuntu/Debian 2sudo apt update 3sudo apt upgrade docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin 4 5# CentOS/RHEL 6sudo yum update docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
❓ Problemas comuns
Erro "Cannot connect to the Docker daemon"
Bashsudo systemctl status docker sudo systemctl start docker groups
Erro "Permission denied"
Bashsudo usermod -aG docker $USER # Terminar sessão e voltar a entrar
📝 Exemplo: aplicação simples
YAML1version: '3.8' 2 3services: 4 web: 5 image: nginx:latest 6 ports: 7 - "80:80" 8 volumes: 9 - ./html:/usr/share/nginx/html 10 restart: unless-stopped
Bashmkdir my-project && cd my-project nano docker-compose.yml docker compose up -d docker ps
📞 Precisa de ajuda?
Contacte o suporte Infrawire se tiver dificuldades na instalação.
Nota: Docker simplifica muito a implementação de aplicações. Compreenda os conceitos básicos antes de usar em produção.