Docker em LXC no Proxmox: vale a pena?

Docker em LXC no Proxmox: vale a pena?

Quando decidi migrar meu blog para infraestrutura própria, uma das primeiras dúvidas foi simples:

Criar uma máquina virtual Debian ou um container LXC para rodar o Docker?

Depois de analisar os recursos disponíveis e o objetivo do projeto, optei por um LXC Debian 12 com Docker para hospedar o Ghost CMS.

A experiência acabou sendo melhor do que eu esperava, mas também deixou claro que existem cenários onde uma VM continua sendo a escolha mais adequada.


O cenário

O ambiente utilizado neste projeto foi:

  • Lenovo ThinkCentre i3-8100T
  • Proxmox VE
  • Container LXC Debian 12
  • Docker Engine
  • Ghost CMS
  • Cloudflare Tunnel

Como o objetivo era hospedar apenas um blog e alguns serviços auxiliares, eu queria algo simples, leve e fácil de manter.

Foi aí que o LXC começou a fazer sentido.


O que é um LXC?

O LXC (Linux Containers) utiliza o mesmo kernel do host Proxmox.

Diferente de uma máquina virtual tradicional, ele não precisa virtualizar hardware completo nem carregar um sistema operacional inteiro de forma independente.

Na prática, isso significa:

  • inicialização extremamente rápida;
  • menor consumo de memória;
  • menos overhead de CPU;
  • melhor aproveitamento do hardware.

Para serviços Linux simples, a sensação é praticamente a de ter uma VM, mas consumindo muito menos recursos.


Por que escolhi LXC para o Ghost?

Meu objetivo era executar:

  • Debian 12;
  • Docker;
  • Ghost;
  • Cloudflared.

Nada disso exige virtualização completa.

Um LXC com:

  • 1 vCPU
  • 2 GB RAM
  • 20 GB disco

foi suficiente para rodar tudo com folga.

Em um equipamento de laboratório doméstico, economizar recursos significa poder hospedar mais serviços simultaneamente.


Docker dentro de LXC funciona?

Sim.

Durante muitos anos isso era visto com certa desconfiança, mas hoje é algo bastante comum em ambientes Proxmox.

Para isso, basta habilitar:

features: nesting=1

na configuração do container.

Depois disso, a instalação do Docker ocorre praticamente da mesma forma que em uma VM Debian convencional.

No meu caso, Ghost e MySQL foram implantados através de Docker Compose sem dificuldades.


Vantagens do Docker em LXC

Menor consumo de memória

Uma VM precisa carregar seu próprio kernel.

Um LXC compartilha o kernel do host.

Na prática, isso reduz bastante o uso de RAM.


Inicialização rápida

Enquanto uma VM precisa realizar todo o processo de boot, um LXC sobe em poucos segundos.

Para laboratórios e serviços leves isso é excelente.


Menor overhead

Menos camadas de virtualização significam maior eficiência.

Em hardware doméstico ou mini PCs, essa diferença pode ser relevante.


Backups simples

O Proxmox trata containers LXC de forma nativa.

Snapshots e backups costumam ser rápidos e práticos.


Nem tudo são flores

Apesar das vantagens, existem algumas limitações.

Dependência do kernel do host

Se você precisa de recursos muito específicos de kernel, uma VM pode oferecer mais flexibilidade.


Isolamento menor

O isolamento de uma VM continua sendo superior.

Para ambientes multiusuário ou workloads mais críticos, isso pode ser importante.


Algumas aplicações não gostam de containers

A maioria dos serviços funciona perfeitamente.

Mas existem softwares que assumem acesso direto ao hardware ou esperam um ambiente virtualizado completo.

Nesses casos, a VM costuma evitar dores de cabeça.


Então quando escolher LXC?

Eu escolheria LXC para:

  • Ghost
  • WordPress
  • Wiki.js
  • Gitea
  • Grafana
  • LibreNMS
  • Nginx
  • Cloudflared
  • Pi-hole
  • aplicações web em geral

Ou seja: serviços Linux tradicionais e workloads leves.


E quando escolher VM?

Eu escolheria VM para:

  • Windows
  • Firewalls virtuais
  • OPNsense
  • pfSense
  • Kubernetes mais complexo
  • Ambientes de homologação
  • Softwares que exigem kernel próprio
  • Cenários com requisitos de isolamento mais rígidos

Quando a dúvida existir, a VM normalmente é a opção mais segura.

Quando a eficiência for prioridade, o LXC costuma ser a melhor escolha.


Minha regra prática

Hoje sigo uma regra simples:

Se o serviço roda em Linux e não precisa de hardware ou kernel específico, começo pelo LXC.

Se aparecer alguma limitação técnica durante os testes, migro para VM.

Na maioria dos meus laboratórios e serviços auxiliares, o LXC acaba vencendo pela simplicidade e economia de recursos.


Conclusão

Para hospedar o Ghost CMS deste blog, a combinação:

Proxmox + LXC Debian 12 + Docker

se mostrou uma solução leve, eficiente e extremamente prática.

Isso não significa que VMs perderam espaço. Elas continuam sendo fundamentais em muitos cenários.

Mas para aplicações Linux modernas, especialmente em laboratórios pessoais e pequenos servidores, os containers LXC oferecem um equilíbrio muito interessante entre desempenho, simplicidade e consumo de recursos.

No meu caso, a escolha permitiu publicar o blog utilizando apenas uma fração dos recursos disponíveis no servidor, mantendo espaço para novos projetos que provavelmente aparecerão no Alyxie Labs em breve.

Ambiente utilizado neste artigo

  • Host: Proxmox VE 9
  • Hardware: Lenovo ThinkCentre M720q (i3-8100T)
  • Container: Debian 12 LXC
  • Docker Engine + Docker Compose
  • Ghost CMS
  • Cloudflare Tunnel

Todo o conteúdo deste artigo foi baseado na implementação real utilizada para hospedar este blog.