Gerenciamento de recursos de contêineres Docker no desktop

Um único contêiner com mau funcionamento pode paralisar um homelabs. Uma transcodificação de Jellyfin, um re-índice de Immich, uma consulta de banco de dados do Home Assistant, e de repente o Pi-hole está perdendo DNS e o Nextcloud está esgotando o tempo limite. A solução não é mais RAM. A solução é limites. Todo contêiner obtém um limite de memória, uma alocação de CPU e um peso de I/O de bloco, e o vizinho barulhento fica em sua faixa. Essa é a história que um escritor do XDA contou recentemente depois de finalmente definir mem_limit, cpus: e blkio-weight em todo contêiner em sua pilha. A confiabilidade veio dos limites, não do hardware.

Nas últimas semanas, executamos os melhores aplicativos para gerenciamento de recursos de contêineres Docker nas três plataformas de desktop que importam para self-hosters: Windows (via WSL ou Docker Desktop), macOS e Linux. Examinamos interfaces web, interfaces de terminal e sistemas operacionais de self-hosting completos, e os classificamos em uma pergunta. Com que rapidez você pode colocar cpus: 2.0 e mem_limit: 1g em todos os contêineres em um único lugar? Estes sete merecem ser instalados.

O que procurar em um gerenciador de recursos Docker

Nem toda GUI do Docker é construída para limitar recursos. Algumas coisas separam as que valem a pena instalar daquelas que apenas listam seus contêineres com lindos ícones.

Comparação rápida

Aplicativo Melhor para Plataformas Licença Preço
Portainer Controle GUI completo sobre pilhas e limites Windows, macOS, Linux CE grátis, BE pago Grátis / a partir de cerca de $155 por nó/ano
Dockge Edição focada em composição com estatísticas ao vivo Windows, macOS, Linux Open source Grátis
Docker Desktop Limites nativos por contêiner em Mac e Windows Windows, macOS, Linux Pessoal grátis, teams pagos Grátis / a partir de $9 por usuário/mês
CasaOS SO homelabs para iniciantes com loja de aplicativos Linux (Debian/Ubuntu/Pi) Open source Grátis
Runtipi Loja de aplicativos homelabs curada com padrões sensatos Linux Open source Grátis
Yacht Interface web leve para Docker de host único Windows, macOS, Linux Open source Grátis
Lazydocker Interface de terminal para triagem rápida e verificações de CPU/memória Windows, macOS, Linux Open source Grátis

Os aplicativos

1. Portainer, melhor para controle GUI completo sobre cada contêiner

Portainer é a ferramenta em que a maioria dos self-hosters cai uma vez que sua pilha cresce além de quatro ou cinco contêineres. A Community Edition é gratuita, funciona como um único contêiner Docker e oferece um console baseado em navegador para cada contêiner, imagem, rede, volume e pilha em um ou vários hosts Docker. Para limitação de recursos especificamente, a visualização de edição de contêiner expõe o limite de CPU (como contagem de vCPU), reserva de memória e limite de memória, e a aplicará a quente via docker update sem recriar o contêiner. As pilhas (arquivos de composição) podem ser editadas em linha, e o Portainer as reimplementa quando você salva.

A visualização multi-host é o que a leva além das opções mais leves. Se você executar o Docker em um NAS e um mini PC, uma instalação do Portainer pode gerenciar os dois, e o painel de recursos mostra qual host está sob pressão antes de você limitar qualquer coisa.

Onde fica aquém: A Community Edition gratuita cai algumas funções no nível da Business Edition pago, incluindo RBAC por usuário além de três usuários e contratos de suporte. Ele também não cobre peso de I/O de bloco da interface, então blkio-weight ainda vive em seu arquivo de composição.

Preço: Community Edition é gratuita para nós ilimitados. Business Edition começa em cerca de $155 por nó por ano com descontos de volume e uma licença gratuita de 5 nós para uso doméstico.

Plataformas: Funciona em qualquer lugar onde o Docker funciona. No desktop, é Windows (WSL ou Docker Desktop), macOS (Docker Desktop ou Colima) e Linux.

Baixar: Site do editor · GitHub

Resumo: Se você quer um painel para ver e limitar cada contêiner em cada máquina que possui, Portainer é a resposta padrão.

2. Dockge, melhor gerenciador gratuito focado em composição

Dockge adota a abordagem oposta ao Portainer. Em vez de gerenciar contêineres como objetos de primeira classe, ele trata arquivos de composição como a fonte da verdade. Você edita docker-compose.yaml no navegador, clica em implementar, e Dockge interrompe, recria e reinicia a pilha. Esse é exatamente o fluxo de trabalho que você deseja ao adicionar mem_limit: 512m e cpus: '0.5' a cada serviço em deploy.resources e querer ver a mudança refletida imediatamente.

A interface é deliberadamente esparsa: uma lista de pilhas à esquerda, um editor de composição e um terminal à direita, leituras de CPU e memória ao vivo na parte superior. É escrito pelo mesmo desenvolvedor do Uptime Kuma, portanto o polimento é real, e a instalação é um único contêiner Docker.

Onde fica aquém: Apenas host único. Se você precisar gerenciar mais de uma máquina Docker a partir de uma única tela, Dockge não fará isso. Ele também assume que você está confortável em escrever arquivos de composição, portanto não é a escolha para alguém que nunca viu YAML antes.

Preço: Grátis, open source sob licença MIT.

Plataformas: Funciona em qualquer lugar onde o Docker funciona. Funciona bem em um servidor Linux acessado de um navegador Windows, macOS ou Linux.

Baixar: GitHub

Resumo: A melhor opção gratuita se seus contêineres já vivem em arquivos de composição e você quer limitá-los lá sem sair do navegador.

3. Docker Desktop, melhor opção integrada no Windows e macOS

Docker Desktop vem com controles de recursos que a maioria dos usuários nunca abre. No Windows e macOS, o painel Recursos limita toda a máquina virtual Docker (memória, CPU, troca, tamanho da imagem do disco), que é sua rede de segurança para evitar que o Docker coma seu laptop. Além disso, os limites de contêineres individuais ainda funcionam como sempre através do CLI, arquivos de composição e da caixa de diálogo de edição de contêiner da interface de desktop nas versões recentes.

A razão pela qual está nessa lista é que já está instalada na maioria das máquinas de desktop. Se você ainda não tiver passado pelas Configurações do Docker Desktop e definido um limite máximo de memória e CPU no mecanismo, faça isso primeiro. Cada limite de contêiner abaixo repousa nesse limite externo.

Onde fica aquém: Os limites do mecanismo são a estrela do show; edição por contêiner na interface de desktop é funcional mas esparsa. No Linux, o aplicativo de desktop é opcional, a maioria das pessoas usa o daemon diretamente. O uso comercial acima de 250 funcionários ou $10M de receita requer uma assinatura paga.

Preço: Grátis para uso pessoal, educação, pequenas empresas e código aberto. Pro é $9 por usuário por mês, Team $15, Business $24.

Plataformas: Windows, macOS, Linux.

Baixar: Docker.com

Resumo: Defina o limite do mecanismo primeiro, depois sobreponha outra ferramenta para limites por contêiner. Grátis para a maioria dos usuários domésticos.

4. CasaOS, melhor escolha para homelabs iniciantes

CasaOS é uma camada completa do sistema operacional de self-hosting que fica acima do Debian, Ubuntu, Raspberry Pi OS ou similar. Instale com um script de uma linha e você obtém uma tela inicial tipo telefone, uma loja de aplicativos com instaladores de um clique (Jellyfin, Immich, Pi-hole, Home Assistant e cerca de 150 outros) e uma visualização de contêiner que mostra CPU e memória por aplicativo em tempo real. Para cada contêiner instalado, você pode abrir as configurações e definir um limite de memória, alocações de CPU e mapeamentos de portas e volumes sem tocar em um arquivo de composição.

É a ferramenta que colocaríamos diante de um amigo que comprou um mini PC para executar Plex e Home Assistant e nunca abriu um terminal. Os limites estão a um controle deslizante de distância, e a interface deixa claro quais contêineres estão ilimitados.

Onde fica aquém: Host único, apenas Linux e opinativo. A loja de aplicativos organiza um conjunto específico de imagens, portanto contêineres personalizados ou fora do catálogo funcionam através do importador de composição, mas não se beneficiam da UX de um clique. O ritmo de desenvolvimento desacelerou em comparação com alguns anos atrás, embora o projeto ainda seja mantido ativamente.

Preço: Grátis, open source sob licença Apache 2.0.

Plataformas: Apenas Linux (Debian, Ubuntu, Raspberry Pi OS, Fedora, Arch). Acesso de qualquer navegador de desktop.

Baixar: Site do editor · GitHub

Resumo: A maneira mais fácil de executar um homelabs pequeno com limites sensatos por aplicativo se a máquina é uma caixa Linux dedicada.

5. Runtipi, melhor alternativa de homelabs curada para CasaOS

Runtipi cobre o mesmo terreno que CasaOS (loja de aplicativos, instaladores de um clique, configurações por aplicativo), mas se sente mais moderno e se move mais rápido. A loja de aplicativos agora abrange várias centenas de aplicativos em contêiner, todos embalados com padrões sensatos, variáveis de ambiente expostas na interface e configurações de recursos expostas por aplicativo. Os limites que você define na configuração do aplicativo se traduzem em limites Docker padrão no momento da implantação.

Preferimos Runtipi ao CasaOS quando o usuário está mais feliz em ler documentação, pois as configurações abrem mais controles. Ele também tem melhor suporte para várias arquiteturas e um fluxo de atualização mais limpo.

Onde fica aquém: Também host único e apenas Linux. Aplicativos que não estão na loja ainda precisam de um arquivo de composição, importado através de uma definição de aplicativo personalizado. A comunidade é menor que a do Portainer ou CasaOS, portanto integrações obscuras requerem mais escavação.

Preço: Grátis, open source.

Plataformas: Linux (Debian, Ubuntu e derivados). Acesso ao navegador de qualquer desktop.

Baixar: Site do editor · GitHub

Resumo: A escolha se CasaOS parece um passo muito simples e Portainer um passo muito bruto.

6. Yacht, melhor interface web leve

Yacht é uma interface web menor e mais rápida no mesmo espaço que Portainer, direcionada para usuários que desejam uma lista de contêineres limpa, modelos de um clique e um painel de configurações que inclui limites de CPU e memória sem a área de superfície adicional de gerenciamento de pilha ou orquestração multi-host. Os modelos vivem em arquivos JSON e podem ser compartilhados pela comunidade, facilitando a implantação de uma imagem com limites sensatos integrados.

Para um único host Docker onde você se importa principalmente em iniciar, parar, limitar e atualizar contêineres, Yacht é mais rápido de aprender que Portainer e mantém todo o fluxo dentro de duas ou três telas.

Onde fica aquém: O desenvolvimento é muito mais lento que o do Portainer ou Dockge, e o projeto está em uma longa fase beta. Multi-host não está no roteiro. Alguns recursos Docker mais recentes chegam mais tarde aqui do que nas ferramentas maiores.

Preço: Grátis, open source.

Plataformas: Funciona em qualquer lugar onde o Docker funciona. Acesso ao navegador de qualquer desktop.

Baixar: GitHub

Resumo: Uma interface web limpa para um único host Docker quando Portainer parece excessivo.

7. Lazydocker, melhor interface de terminal para triagem rápida

Lazydocker não é um gerenciador, é um monitor com mãos. Inicie em um terminal e você obtém uma visualização controlada por teclado de cada contêiner com gráficos de CPU, memória, I/O de bloco e rede ao vivo, além de painéis de estatísticas, logs e um atalho de shell. Quando um contêiner dispara, lazydocker mostra qual em segundos, e você pode reiniciar, parar ou abrir um shell sem sair do painel.

Para realmente definir limites, você entra em um shell (e abre o contêiner no $EDITOR ou docker exec) e usa docker update --cpus 2 --memory 1g <name> ou edita o arquivo de composição. É a ferramenta que você mantém em uma divisão tmux ao lado de qualquer interface web que seja seu principal.

Onde fica aquém: Sem interface de edição para composição ou limites de execução, você precisa digitar CLI. Apenas Docker, sem Kubernetes.

Preço: Grátis, open source sob licença MIT.

Plataformas: Windows (via WSL ou PowerShell), macOS, Linux. Instala via Homebrew, Scoop, Nix ou binário Go.

Baixar: GitHub

Resumo: A maneira mais rápida de ver qual contêiner está se comportando mal agora e executar o docker update que o limita.

Como escolher o correto

A maioria dos self-hosters acaba com dois. Uma interface web para definir limites e ler estado, mais Lazydocker em um terminal de sobra para o momento em que um contêiner começa a se comportar mal.

FAQ

Qual é o melhor aplicativo gratuito para gerenciar contêineres Docker no desktop?

Portainer Community Edition é a escolha gratuita mais forte porque cobre edição de contêineres, pilhas, multi-host e estatísticas ao vivo em uma interface de navegador única sem paywall. Para um fluxo de trabalho focado em composição, Dockge é a melhor escolha gratuita.

Como defino um limite de CPU e memória em um contêiner Docker?

Em um arquivo de composição, adicione deploy.resources.limits.cpus: '2.0' e deploy.resources.limits.memory: 1G no serviço, ou use os antigos níveis superiores cpus: 2.0 e mem_limit: 1g. Em um contêiner em execução, docker update --cpus 2 --memory 1g <name> aplica a mudança sem reinicialização. Portainer, Dockge, CasaOS, Runtipi e Yacht expõem essas configurações na interface.

O Docker Desktop pode limitar contêineres individuais?

O painel de Recursos do Docker Desktop limita toda a máquina virtual Docker no Windows e macOS, não contêineres individuais. Os limites por contêiner ainda vêm de arquivos de composição, sinalizadores docker run ou um gerenciador como Portainer que funciona no mesmo mecanismo.

Portainer ou Dockge é melhor para um homelabs?

Portainer se você tiver mais de um host Docker ou quiser um gerenciador de contêineres completo. Dockge se todos os seus serviços já vivem em arquivos de composição em um único host e você quer o loop de edição mais rápido. Muitos homelabbers instalam os dois e usam cada um para o que faz melhor.

Qual é a diferença entre CasaOS e Runtipi?

Ambos são camadas de SO de homelabs de instalação em uma linha com uma loja de aplicativos curada e configurações por aplicativo. CasaOS é mais amigável para iniciantes com um ritmo de mudança mais lento; Runtipi expõe mais configuração e envia novos aplicativos mais rápido. Tente CasaOS primeiro se a simplicidade importa, Runtipi se você planeja mexer as coisas.

Essas ferramentas funcionam sobre WSL no Windows?

Sim. Qualquer um dos sete é executado em um contêiner em um mecanismo Docker dentro do WSL 2, e você acessa a interface web de um navegador Windows em localhost. Lazydocker também é executado diretamente dentro do shell WSL.