Como Implantar Docker em VPS Linux: Tutorial Prático e Requisitos

12 min 1 Docker

Como Implantar Docker em VPS Linux: Tutorial Prático e Requisitos de Servidor

Se você chegou até aqui, provavelmente já entende o potencial do Docker para transformar a maneira como você desenvolve, empacota e implanta suas aplicações. A questão agora não é se usar Docker, mas como colocá-lo para rodar em um ambiente de produção. E a resposta mais comum, eficiente e econômica para muitos, é em um VPS Linux. Neste artigo, Gabriel Kemmer, especialista em infraestrutura cloud na Host You Secure, compartilhará a experiência prática de mais de 9 anos ajudando clientes a operar Docker em ambientes reais, detalhando requisitos, instalação e dicas de otimização.

Implantar Docker em um VPS Linux é o caminho mais direto para aproveitar os benefícios da conteinerização, oferecendo isolamento, portabilidade e eficiência para suas aplicações. Você aprenderá o passo a passo da instalação em Ubuntu, os requisitos mínimos de servidor e como otimizar seu ambiente para deploy eficiente.

Por Que Usar Docker em um VPS Linux para Suas Aplicações?

A dúvida de muitos clientes que chegam à Host You Secure é: por que devo escolher Docker e um VPS? A combinação de Docker e um VPS Linux oferece uma poderosa plataforma para deploy de aplicações, entregando flexibilidade e controle. O Docker permite empacotar aplicações e suas dependências em containers isolados, garantindo que tudo funcione exatamente da mesma forma em qualquer ambiente.

O que é Docker e Como ele Otimiza o Deploy?

Docker é uma plataforma de código aberto que automatiza a implantação, escala e gerenciamento de aplicações usando conteinerização. Um container Docker é uma unidade padronizada de software que empacota o código de uma aplicação e todas as suas dependências, como bibliotecas e configurações, de modo que a aplicação funcione de forma rápida e confiável em qualquer ambiente de computação. Isso significa que "funciona na minha máquina" finalmente se estende para "funciona em qualquer servidor". Na minha experiência, isso reduz drasticamente os problemas de compatibilidade e acelera o ciclo de deploy, permitindo que as equipes de DevOps se concentrem mais em desenvolver e menos em resolver conflitos de ambiente. Para a maioria dos cenários, um container Docker em repouso consome cerca de 10-20MB de RAM, mas pode escalar rapidamente dependendo da aplicação, atingindo facilmente 100-300MB sob carga moderada.

Vantagens de Rodar Docker em um Servidor VPS Linux

Um Servidor Virtual Privado (VPS) Linux oferece um ambiente dedicado com recursos garantidos, o que é ideal para hospedar containers Docker. Diferente de hospedagens compartilhadas, você tem controle total sobre o sistema operacional e a configuração do kernel, o que é crucial para otimizar o Docker. As principais vantagens incluem:

  • Isolamento de Recursos: Seu VPS tem RAM, CPU e disco dedicados, garantindo que suas aplicações Docker não sejam afetadas por outros usuários.
  • Controle Total: Acesso root permite instalar e configurar o Docker e suas ferramentas de orquestração conforme suas necessidades específicas.
  • Custo-Benefício: Um VPS é significativamente mais acessível do que um servidor dedicado, oferecendo um excelente equilíbrio entre custo e desempenho.
  • Flexibilidade: Você pode facilmente escalar os recursos do seu VPS conforme suas aplicações Docker crescem.

Para clientes com projetos de pequena a média escala, a combinação de Docker e um VPS Linux de 2GB de RAM e 2 vCPUs provou ser mais do que suficiente para rodar múltiplas aplicações, como um site WordPress com banco de dados em containers separados, ou uma API de microsserviços.

Requisitos de Servidor para Docker e Como Escolher Seu VPS

Antes de mergulharmos na instalação, é crucial entender os requisitos mínimos e recomendados para rodar Docker de forma eficaz. A escolha do seu VPS impactará diretamente o desempenho e a estabilidade das suas aplicações conteinerizadas.

CPU, RAM e Armazenamento: O Que Você Realmente Precisa?

Os requisitos de hardware para Docker podem variar bastante dependendo da complexidade e do número de aplicações que você pretende rodar em containers. No entanto, para a maioria dos projetos de pequeno e médio porte, posso fornecer uma base sólida:

  • CPU: Um VPS com 1 vCPU é o mínimo absoluto para começar, mas para produção, 2 vCPUs são altamente recomendáveis. Um uso de CPU de 50-70% em um único vCPU pode já impactar a latência do seu serviço.
  • RAM: O Docker em si consome cerca de 50-100MB de RAM após a inicialização. Para suas aplicações, o mínimo é 1GB de RAM, mas 2GB de RAM ou mais é o ideal para garantir que você possa rodar múltiplos containers e lidar com picos de tráfego sem problemas de desempenho. Por exemplo, uma aplicação Node.js e um banco de dados PostgreSQL em containers separados podem consumir juntos entre 500MB e 1.5GB de RAM.
  • Armazenamento: Recomendo no mínimo 20GB de SSD. O sistema operacional (Ubuntu Server) ocupa cerca de 5-10GB. Cada imagem Docker pode variar de dezenas de MB a vários GBs. Seus dados e logs também consumirão espaço. SSD é crucial para performance de I/O, impactando diretamente o tempo de inicialização de containers e a velocidade do banco de dados.

É importante considerar também o tráfego de rede. Embora não seja um requisito de hardware direto, um bom link de internet para o seu VPS é fundamental para um deploy rápido e para a performance da aplicação.

Sistema Operacional Compatível e Kernel Linux

O Docker é projetado para rodar nativamente em Linux. As distribuições mais populares e suportadas incluem:

  • Ubuntu Server (LTS): É a escolha mais comum e a que recomendo para iniciantes e profissionais, devido à vasta documentação e comunidade ativa. As versões LTS (Long Term Support), como Ubuntu 20.04 ou 22.04, são ideais por sua estabilidade e suporte de longo prazo.
  • Debian: Outra excelente opção, conhecida por sua estabilidade.
  • CentOS/Rocky Linux: Populares em ambientes corporativos.

O kernel Linux precisa ser moderno (versão 3.10 ou superior) para suportar os recursos de conteinerização do Docker, como cgroups e namespaces. A maioria dos provedores de VPS modernos, incluindo a Host You Secure, já oferece um kernel adequado.

Passo a Passo: Instalando e Configurando Docker em um VPS Ubuntu

Agora que você sabe o que precisa, vamos à prática. Este tutorial foca na instalação em um VPS rodando Ubuntu Server, uma das distribuições mais populares e amigáveis para Docker.

1. Preparando o Ambiente do VPS

Antes de instalar o Docker, é uma boa prática atualizar os pacotes existentes no seu sistema e instalar algumas dependências necessárias. Conecte-se ao seu VPS via SSH e execute os seguintes comandos:


sudo apt update
sudo apt upgrade -y

sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release

Este processo garante que seu sistema esteja com as últimas atualizações de segurança e que as ferramentas para adicionar novos repositórios estejam disponíveis. A atualização leva geralmente 5 a 10 minutos, dependendo da quantidade de pacotes.

2. Adicionando o Repositório Oficial do Docker

Para garantir que você sempre instale a versão mais recente e estável do Docker, adicionaremos o repositório oficial. Isso é melhor do que usar as versões dos repositórios padrão do Ubuntu, que podem estar desatualizadas.


curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

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

sudo apt update

Estes comandos baixam a chave GPG do Docker, adicionam o repositório oficial à sua lista de fontes de pacotes e, em seguida, atualizam o índice de pacotes do apt para incluir as novas informações do Docker.

3. Instalando o Docker Engine e Docker Compose

Com o repositório adicionado, você pode agora instalar o Docker Engine, o Docker CLI e o Containerd. Recomendo também instalar o Docker Compose, uma ferramenta essencial para definir e executar aplicações Docker multi-container.


sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

Após a instalação, o serviço Docker deve iniciar automaticamente. Você pode verificar o status com sudo systemctl status docker. A instalação completa do Docker e suas dependências geralmente consome cerca de 200MB de espaço em disco e leva no máximo 2 minutos em um VPS com boa conexão.

4. Verificando a Instalação e Configurando Permissões

Para evitar usar sudo a cada comando Docker, adicione seu usuário ao grupo docker. Isso é uma boa prática para desenvolvimento e acesso facilitado, mas em produção, considere alternativas mais robustas para execução de scripts. Na minha experiência, muitos clientes esquecem este passo e se frustram ao tentar rodar comandos sem permissão.


sudo usermod -aG docker $USER
newgrp docker

Após executar newgrp docker, você precisará sair e reconectar-se ao SSH para que as novas permissões sejam aplicadas. Para testar o Docker, execute o famoso container "hello-world":


docker run hello-world

Se você vir a mensagem "Hello from Docker!", sua instalação foi bem-sucedida! O container hello-world é muito leve (cerca de 1.8KB) e serve apenas para testar a comunicação com o daemon Docker.

Erros Comuns ao Usar Docker em VPS e Como Evitá-los

Mesmo com um passo a passo claro, é comum encontrar alguns obstáculos. Conhecer os erros mais frequentes pode economizar horas de depuração.

Problemas de Permissão e Rede

Um dos erros mais comuns, como mencionei, é esquecer de adicionar o usuário ao grupo docker, resultando em "permission denied" ao tentar executar comandos docker sem sudo. Certifique-se de executar e aplicar o comando sudo usermod -aG docker $USER e reconectar.

Outro problema frequente são as configurações de firewall. Se você estiver usando um firewall (como ufw), certifique-se de permitir o tráfego nas portas que seus containers Docker expõem. Por exemplo, se seu container expõe a porta 80, você precisará:


sudo ufw allow 80/tcp
sudo ufw enable

Sempre verifique as portas que suas aplicações usam e as libere no firewall. Um erro comum é rodar uma aplicação web no container na porta 3000 e esquecer de mapeá-la para 80 ou 443 na máquina host, ou liberar a porta 3000 no firewall.

Excesso de Imagens e Containers Antigos

Com o tempo, você acumulará imagens e containers parados, que consomem espaço em disco. Recomendo limpar regularmente seu ambiente Docker:


docker system prune -a

Este comando remove todos os containers parados, redes não utilizadas, imagens penduradas (dangling images) e caches de build. É uma ótima prática para manter seu VPS limpo e otimizado, especialmente se você tem armazenamento limitado.

Orquestração de Containers: Docker Compose vs. Kubernetes

Para aplicações mais complexas ou ambientes com múltiplos serviços, a orquestração de containers se torna essencial. As principais ferramentas são Docker Compose e Kubernetes.

Comparativo: Docker Compose para Projetos Menores e Kubernetes para Escala

A escolha entre Docker Compose e Kubernetes depende da escala e complexidade do seu projeto:

Característica Docker Compose Kubernetes
Finalidade Definir e rodar aplicações multi-container em uma única máquina host. Orquestrar, escalar e gerenciar aplicações conteinerizadas em um cluster de máquinas.
Complexidade Baixa, fácil de configurar e usar. Alta, curva de aprendizado íngreme, mas extremamente poderoso.
Escalabilidade Limitada (foco em uma única máquina). Altamente escalável, auto-healing, balanceamento de carga nativo.
Ambiente Desenvolvimento, pequenos projetos, PoCs, microsserviços simples em um VPS. Produção em larga escala, multi-cloud, infraestruturas distribuídas.
Configuração Arquivo docker-compose.yml. Arquivos YAML complexos para Deployments, Services, Pods, etc.
Recursos Requeridos Moderados (depende da aplicação). Substanciais (múltiplos nós, master e worker nodes).

Para a maioria dos clientes que iniciam com um VPS, o Docker Compose é a ferramenta ideal. Ele permite que você defina sua aplicação (web server, banco de dados, API, etc.) em um único arquivo YAML, facilitando o deploy e o gerenciamento. Rodamos vários projetos de API com Evolution API e N8N em um único VPS usando Docker Compose, com até 5 containers simultâneos, sem problemas de performance.

Perguntas Relacionadas sobre Docker e VPS

Ao longo dos anos, algumas perguntas se repetem. Vamos esclarecer algumas delas para você.

Qual a diferença entre Docker e uma máquina virtual (VM)?

Um container Docker compartilha o kernel do sistema operacional host, enquanto uma máquina virtual (VM) inclui seu próprio sistema operacional completo. Containers são mais leves, iniciam mais rápido e consomem menos recursos. VMs oferecem isolamento mais robusto, mas com maior sobrecarga.

Posso rodar Windows Containers em um VPS Linux?

Não diretamente. Windows Containers exigem um sistema operacional Windows como host. Em um VPS Linux, você só pode rodar containers Linux. Se precisar de Windows Containers, você precisará de um VPS rodando Windows Server.

Como faço para manter meus containers Docker atualizados?

A melhor prática é recriar seus containers com as versões mais recentes das imagens Docker. Você pode usar docker-compose pull para baixar novas imagens e docker-compose up -d para recriar os containers sem downtime, se configurado corretamente. Recomendo automatizar esse processo com ferramentas de CI/CD.

O Docker é seguro para produção?

Sim, o Docker é amplamente usado em produção, mas exige boas práticas de segurança. Isso inclui usar imagens oficiais ou verificadas, não rodar containers como root, e configurar firewalls adequadamente. Manter o Docker Engine e as imagens atualizadas é fundamental.

Conclusão: O Caminho para um Deploy Eficiente com Docker em VPS

A implantação do Docker em um VPS Linux é um passo estratégico para qualquer desenvolvedor ou equipe de DevOps que busca otimizar o processo de deploy de suas aplicações. Com isolamento, portabilidade e um ecossistema robusto de ferramentas de orquestração como o Docker Compose, seus projetos ganham em estabilidade e escalabilidade.

Seguindo este guia, você tem o conhecimento e o passo a passo necessário para configurar seu ambiente Docker e começar a conteinerizar suas aplicações. Os requisitos de 2GB de RAM e 2 vCPUs são o ponto de partida ideal para a maioria dos projetos, oferecendo um excelente equilíbrio entre performance e custo.

Para rodar esse exato setup e dar o próximo passo em sua jornada de conteinerização, recomendamos o plano VPS Brasil Starter da Host You Secure. Por apenas R$ 49/mês, ele oferece 2GB de RAM, 2 vCPUs e armazenamento SSD, perfeito para iniciar com o Docker e hospedar suas primeiras aplicações. Rodamos esse exato setup em uma VPS Brasil Starter para diversos serviços de clientes, com excelente performance. Clique aqui para explorar os planos VPS da Host You Secure e iniciar seu projeto Docker hoje mesmo!

Leia também: Veja mais tutoriais de N8N

Perguntas Frequentes

Recomendamos sempre instalar a versão estável mais recente do Docker Engine diretamente do repositório oficial. Isso garante que você tenha acesso aos recursos mais novos e correções de segurança. Geralmente, as versões LTS do Ubuntu (como 20.04 ou 22.04) são as mais compatíveis e suportadas para isso, com o Docker versão 20.10.x ou superior.

Em um VPS com 2GB de RAM e 2 vCPUs, você pode rodar confortavelmente entre 3 a 7 containers leves a moderados, dependendo do consumo de recursos de cada aplicação. Por exemplo, uma aplicação Node.js, um banco de dados PostgreSQL e um Nginx proxy reverso podem consumir cerca de 1GB a 1.5GB de RAM total em repouso. É crucial monitorar o uso de recursos para evitar gargalos.

Docker Compose é uma ferramenta para definir e rodar aplicações Docker multi-container. Você o usa quando sua aplicação é composta por vários serviços interligados (ex: frontend, backend, banco de dados, fila de mensagens) e você precisa gerenciá-los como uma única unidade em um único host. É ideal para ambientes de desenvolvimento, testes e pequenos projetos em produção onde a orquestração complexa de Kubernetes não é necessária.

Para segurança em produção, use imagens base oficiais e minimalistas, evite rodar containers como root, configure limites de recursos (CPU, RAM) para cada container, e mantenha o Docker Engine e as imagens atualizadas. Implemente um firewall (UFW) para expor apenas as portas necessárias e use redes Docker para isolar a comunicação entre containers. A varredura de vulnerabilidades em imagens também é uma boa prática.

Sim, a migração de aplicações legadas para Docker é um caso de uso comum. O processo geralmente envolve a criação de um Dockerfile que empacota a aplicação e suas dependências. Isso permite modernizar e isolar aplicações antigas, facilitando a manutenção e o deploy. Clientes frequentemente trazem aplicações PHP ou Java mais antigas para ambientes Docker, obtendo melhor consistência.

Embora Docker seja a ferramenta mais popular, existem alternativas como Podman, Containerd (componente do Docker, mas pode ser usado standalone), CRI-O e LXC. Podman é notável por ser compatível com a CLI do Docker, mas sem a necessidade de um daemon, o que pode ser preferível em alguns ambientes de segurança.

Você pode monitorar o desempenho dos seus containers usando comandos como `docker stats` para ver o uso de CPU, RAM, rede e I/O em tempo real. Para um monitoramento mais avançado e histórico, ferramentas como Prometheus e Grafana, ou sistemas de monitoramento baseados em agentes como Netdata ou Datadog, podem ser conteinerizadas e implantadas em seu VPS para coletar métricas detalhadas.

Sim, é uma prática muito comum e recomendada. Você pode rodar WordPress em um container, e um banco de dados MySQL/MariaDB em outro container, interconectados via Docker Compose. Isso garante um ambiente isolado, fácil de replicar e atualizar. Muitos clientes da Host You Secure usam essa configuração para seus sites WordPress, obtendo alta performance e estabilidade.

Comentários (2)

4.0
2 avaliações
Fernando Costa - Digital Agency

Artigo muito bem escrito e explicativo! Já compartilhei com toda a equipe da empresa. Em qual parte do artigo você recomenda começar para quem é iniciante?

Julia Oliveira

Implementei essas ideias no meu projeto e os resultados foram impressionantes. Obrigado pelo conhecimento compartilhado!