Contêineres Docker minimalistas para cada PC

Por que uma stack pequena de contêineres vence uma grande

Ler “5 just-enough Docker containers I use on every PC” na XDA nos fez fazer uma revisão de nossas próprias stacks e eliminar dois terços do que estávamos executando. Um lab doméstico que ninguém toca porque leva uma hora para entender é um lab morto. Um conjunto pequeno e deliberado de contêineres cobrindo interface admin, uptime, segredos, bloqueio de anúncios e atualizações é a versão que continuamos usando anos depois, no Windows com Docker Desktop, no macOS com OrbStack e no Linux com Docker Engine puro.

Testamos oito contêineres em um ciclo de instalação limpa em cada um desses hosts, depois executamos a stack por uma semana de trabalho para verificar o uso de RAM, CPU ociosa e quantos bugs encontramos. Tudo aqui pode ser iniciado com docker compose up -d e funciona bem atrás de um firewall de rede doméstica.

O que procurar em uma stack minimalista de contêineres

Comparação rápida

Aplicativo Melhor para Pegada ociosa Interface web Licença
Portainer Gerenciar contêineres visualmente Baixa Sim Community edition free
Uptime Kuma Monitorar serviços e receber alertas Muito baixa Sim MIT
Vaultwarden Gerenciador de senhas auto-hospedado Muito baixa Sim GPLv3
Pi-hole Bloqueio de anúncios e rastreadores em nível DNS Muito baixa Sim EUPL
Watchtower Atualização automática de contêineres Muito baixa Sem interface web Apache 2.0
Homepage Painel pessoal para a stack Muito baixa Sim GPLv3
Traefik Proxy reverso para o resto da stack Baixa Sim (painel) MIT
Duplicati Backup para host e volumes de contêineres Baixa Sim LGPLv2.1

Os oito contêineres que executamos em cada host

1. Portainer, a interface admin que torna Docker legível

Portainer é o painel do navegador que transforma a linha de comando do Docker em um conjunto de telas. Iniciar e parar contêineres, fazer pull de imagens, inspecionar volumes, monitorar logs, exec em um contêiner, diagramas de rede, tudo. Para qualquer um que não queira manter os últimos trinta comandos docker em sua cabeça, Portainer é por onde o dia começa.

Onde fica aquém: A edição Business está atrás de uma licença; a edição Community cobre tudo que um lab doméstico de um único node precisa, mas alguns recursos corporativos (RBAC além de alguns accounts, armazenamento de segredos criptografado) são pagos.

Preço:

Funciona em: Windows Docker Desktop, macOS OrbStack, Docker Engine no Linux.

Baixar: portainer.io

Conclusão: O primeiro contêiner a instalar em um novo host, antes de instalar qualquer outra coisa.

2. Uptime Kuma, o monitor que te avisa antes da sua família

Uptime Kuma é uma página de status auto-hospedada e mecanismo de alertas. Faz ping em uma URL, porta TCP, banco de dados ou verificação de saúde de contêiner em um cronograma, depois pinta um painel de status e ativa alertas (Discord, Telegram, email, ntfy) quando algo quebra. Adicionar um novo serviço é um formulário de dois minutos.

Onde fica aquém: Não foi construído para centenas de serviços (é uma ferramenta de lab doméstico, não Datadog). Seus próprios restarts deixam uma lacuna na cronologia.

Preço:

Funciona em: Docker no Windows, macOS, Linux.

Baixar: Uptime Kuma on GitHub

Conclusão: O contêiner que torna o resto da stack observável. Adicione como segundo.

3. Vaultwarden, o Bitwarden auto-hospedado compacto

Vaultwarden é uma reimplementação em Rust da API do servidor Bitwarden. Executa em uma fração da RAM que o contêiner oficial usa, fala o mesmo protocolo que os aplicativos Bitwarden oficiais e armazena tudo em um único arquivo SQLite trivialmente backup-ável.

Onde fica aquém: Projeto comunitário, não endossado por Bitwarden. Alguns recursos corporativos (provedores SSO, sincronização de diretório) estão bloqueados para planos pagos no Bitwarden hospedado.

Preço:

Funciona em: Qualquer host Docker.

Baixar: Vaultwarden on GitHub

Conclusão: O contêiner que finalmente permite deixar um gerenciador de senhas hospedado sem perder sincronização entre dispositivos.

4. Pi-hole, o bloqueador de anúncios para cada dispositivo na rede

Pi-hole executa um servidor DNS que não retorna nada para domínios em suas listas de bloqueio. Aponte o DNS do seu roteador para o contêiner Pi-hole e cada dispositivo na rede (telefones, TVs, impressoras) de repente perde suas conexões de anúncios e rastreadores em nível DNS, sem necessidade de instalação por dispositivo.

Onde fica aquém: Alguns serviços dependem de domínios de rastreadores para que links funcionem; a memória muscular da lista branca leva uma semana para construir. Listas de bloqueio HTTPS-apenas ainda perdem anúncios servidos do mesmo domínio que o site.

Preço:

Funciona em: Docker em qualquer host; mais feliz em uma máquina sempre ligada.

Baixar: pi-hole.net

Conclusão: O único contêiner que muda o que toda a casa vê, que é um bom retorno por dez minutos de compose.

5. Watchtower, o faxineiro que mantém os contêineres frescos

Watchtower observa seus outros contêineres, verifica imagens mais recentes e faz pull mais reinicia em um cronograma que você define. Envie com uma notificação Discord ou Slack e cada manhã você recebe um resumo do que atualizou durante a noite.

Onde fica aquém: Atualizações automáticas podem quebrar serviços em execução se uma imagem enviar uma versão ruim. Fixar tags específicas ou usar filtros de label é a mitigação.

Preço:

Funciona em: Qualquer host Docker.

Baixar: containrrr.dev/watchtower

Conclusão: O contêiner que impede o resto da stack de apodrecer.

6. Homepage, o painel que torna a stack encontrável

Homepage é um painel leve que lista seus serviços com ícones, verificações de saúde e integrações que mostram dados em tempo real (status Uptime Kuma, contagens Portainer, filas Sonarr se você executar uma). Marque-o em cada navegador e nunca mais perderá a URL de um contêiner.

Onde fica aquém: Configuração é YAML em disco; a parte boa é que vive no git, a parte ruim é que não é uma interface click-to-add.

Preço:

Funciona em: Docker em qualquer host.

Baixar: Homepage on GitHub

Conclusão: O contêiner que transforma o resto da stack de “URLs que lembro” em uma verdadeira porta de entrada.

7. Traefik, o proxy reverso que o resto da stack fala através

Traefik é o proxy reverso que permite que cada outro contêiner responda em seu próprio subdomínio (portainer.home, kuma.home, vault.home) em vez de memorizar números de porta. Observa labels Docker e atualiza roteamento automaticamente, então adicionar um novo contêiner que recebe uma URL pública requer três linhas de label e uma aplicação de compose.

Onde fica aquém: A primeira implantação de Traefik tem mais botões que os outros; labels de roteador e configuração de resolvedor TLS requerem uma leitura cuidadosa dos documentos.

Preço:

Funciona em: Qualquer host Docker.

Baixar: traefik.io

Conclusão: O único contêiner que muda toda a stack de “IPs e portas” para “URLs legíveis para humanos.”

8. Duplicati, o backup que mantém volumes de contêineres seguros

Duplicati é o cliente de backup para o resto da stack. Aponte para seus volumes Docker e bind mounts, escolha um destino (local, SSH, S3, B2, WebDAV), configure um cronograma e cada noite os dados importantes recebem um backup criptografado e deduplicado fora do host.

Onde fica aquém: A interface web é funcional em vez de polida. Fluxos de restauração requerem um passo a passo na primeira vez.

Preço:

Funciona em: Docker em qualquer host.

Baixar: duplicati.com

Conclusão: O único contêiner que as pessoas pulam e depois se arrependem quando um disco morre. Adicione cedo.

Como escolher a stack minimalista certa

FAQ

Esses contêineres funcionam em um PC Windows com Docker Desktop?

Sim. Cada um dos oito envia uma imagem multi-arch oficial (linux/amd64 e linux/arm64) que funciona de forma idêntica no Docker Desktop para Windows, OrbStack no macOS e Docker Engine no Linux.

Quanto de RAM essa stack usa quando ociosa?

Em um Raspberry Pi 5 com 4GB e em um pequeno mini PC com 8GB, os oito contêineres juntos ficam ociosos em centenas baixas de megabytes de RAM. Vaultwarden e Pi-hole são os mais leves; Traefik e Duplicati crescem brevemente durante o trabalho ativo.

É seguro deixar Watchtower em atualizações automáticas?

Principalmente. O padrão mais seguro é executar Watchtower com filtros de label para que ele só atualize contêineres que você marcou como “seguro para auto-update” e deixe o resto em atualizações manuais. Fixar tags de versão principal é outra mitigação comum.

Preciso de Portainer se já estou confortável na CLI do Docker?

Portainer é uma camada de conveniência. Se você está bem com a CLI e lê logs com docker compose logs -f, pode pular. A maioria das pessoas que adicionam isso para de desinstalar depois de uma semana.

Posso executar essa stack em um NAS Synology ou QNAP?

Sim. Ambos os fornecedores enviam interfaces de Container Manager que leem arquivos compose padrão e cada contêiner aqui é compatível. No Synology DSM 7, o Container Manager pode importar o arquivo compose diretamente.