Gestion des ressources des conteneurs Docker sur bureau

Un seul conteneur dysfonctionnant peut paralyser un homelabs. Un transcodage Jellyfin, une réindexation Immich, une requête de base de données Home Assistant, et soudain Pi-hole perd son DNS et Nextcloud expire. La solution n’est pas plus de RAM. La solution ce sont les limites. Chaque conteneur obtient un plafond mémoire, une part CPU et un poids E/S de bloc, et le voisin bruyant reste dans sa voie. C’est l’histoire qu’un auteur XDA a récemment racontée après avoir finalement défini mem_limit, cpus: et blkio-weight sur chaque conteneur de sa pile. La fiabilité est venue des limites, pas du matériel.

Au cours des dernières semaines, nous avons exécuté les meilleures applications pour la gestion des ressources des conteneurs Docker sur les trois plates-formes de bureau qui importent pour les auto-hébergeurs : Windows (via WSL ou Docker Desktop), macOS et Linux. Nous avons examiné les interfaces web, les interfaces de terminal et les systèmes d’exploitation d’auto-hébergement complets, et nous les avons classés selon une question. Avec quelle rapidité pouvez-vous placer cpus: 2.0 et mem_limit: 1g sur chaque conteneur au même endroit ? Ces sept méritent d’être installés.

Ce qu’il faut rechercher dans un gestionnaire de ressources Docker

Tous les GUI Docker ne sont pas conçus pour limiter les ressources. Quelques éléments distinguent ceux qui valent la peine d’être installés de ceux qui listent simplement vos conteneurs avec de jolis icônes.

Comparaison rapide

Application Meilleure pour Plates-formes Licence Prix
Portainer Contrôle GUI complet sur les piles et les limites Windows, macOS, Linux CE gratuit, BE payant Gratuit / à partir d’environ 155 $/nœud/an
Dockge Édition basée sur composition avec statistiques en direct Windows, macOS, Linux Open source Gratuit
Docker Desktop Limites natives par conteneur sur Mac et Windows Windows, macOS, Linux Personnel gratuit, équipes payantes Gratuit / à partir de 9 $/utilisateur/mois
CasaOS Système d’exploitation homelabs pour débutants avec magasin d’applications Linux (Debian/Ubuntu/Pi) Open source Gratuit
Runtipi Magasin d’applications homelabs curé avec des paramètres par défaut sensés Linux Open source Gratuit
Yacht Interface web légère pour Docker à hôte unique Windows, macOS, Linux Open source Gratuit
Lazydocker Interface terminal pour triage rapide et vérifications CPU/mémoire Windows, macOS, Linux Open source Gratuit

Les applications

1. Portainer, meilleur pour le contrôle GUI complet sur chaque conteneur

Portainer est l’outil sur lequel la plupart des auto-hébergeurs atterrissent une fois que leur pile dépasse quatre ou cinq conteneurs. La Community Edition est gratuite, s’exécute comme un seul conteneur Docker et vous offre une console basée sur un navigateur pour chaque conteneur, image, réseau, volume et pile sur un ou plusieurs hôtes Docker. Pour la limitation des ressources spécifiquement, la vue d’édition de conteneur expose la limite CPU (en tant que nombre de vCPU), la réservation de mémoire et la limite de mémoire, et l’appliquera à chaud via docker update sans recréer le conteneur. Les piles (fichiers de composition) peuvent être modifiées en ligne, et Portainer les redéploie lorsque vous enregistrez.

La vue multi-hôte est ce qui la pousse au-delà des options plus légères. Si vous exécutez Docker sur un NAS et un mini PC, une installation de Portainer peut gérer les deux, et le tableau de bord des ressources montre quel hôte est sous pression avant que vous ne limitiez quoi que ce soit.

Où il échoue : La Community Edition gratuite dépose quelques fonctionnalités dans un niveau Business Edition payant, y compris RBAC par utilisateur au-delà de trois utilisateurs et contrats de support. Il ne couvre pas non plus le poids E/S de bloc depuis l’interface, donc blkio-weight vit toujours dans votre fichier de composition.

Prix : La Community Edition est gratuite pour les nœuds illimités. Business Edition commence à environ 155 $/nœud/an avec des remises de volume et une licence gratuite de 5 nœuds pour un usage domestique.

Plates-formes : S’exécute partout où Docker s’exécute. Sur bureau, c’est Windows (WSL ou Docker Desktop), macOS (Docker Desktop ou Colima) et Linux.

Télécharger : Site de l’éditeur · GitHub

Conclusion : Si vous voulez un tableau de bord pour voir et limiter chaque conteneur sur chaque machine que vous possédez, Portainer est la réponse par défaut.

2. Dockge, meilleur gestionnaire gratuit basé sur la composition

Dockge adopte l’approche opposée à Portainer. Au lieu de gérer les conteneurs en tant qu’objets de première classe, il traite les fichiers de composition comme la source de vérité. Vous modifiez docker-compose.yaml dans le navigateur, appuyez sur déployer, et Dockge arrête, recrée et redémarre la pile. C’est exactement le flux de travail que vous souhaitez lorsque vous ajoutez mem_limit: 512m et cpus: '0.5' à chaque service sous deploy.resources et souhaitez voir la modification reflétée immédiatement.

L’interface est volontairement réduite : une liste de piles à gauche, un éditeur de composition et un terminal à droite, des lectures CPU et mémoire en direct en haut. Il est écrit par le même développeur qu’Uptime Kuma, donc le polissage est réel, et l’installation est un seul conteneur Docker.

Où il échoue : Hôte unique uniquement. Si vous avez besoin de gérer plus d’une machine Docker à partir d’un seul écran, Dockge ne le fera pas. Il suppose également que vous êtes à l’aise d’écrire des fichiers de composition, ce n’est donc pas le choix pour quelqu’un qui n’a jamais vu YAML auparavant.

Prix : Gratuit, open source sous licence MIT.

Plates-formes : S’exécute partout où Docker s’exécute. Fonctionne bien sur un serveur Linux accessible via un navigateur Windows, macOS ou Linux.

Télécharger : GitHub

Conclusion : Le meilleur choix gratuit si vos conteneurs vivent déjà dans des fichiers de composition et que vous souhaitez les limiter là sans quitter le navigateur.

3. Docker Desktop, meilleure option intégrée sur Windows et macOS

Docker Desktop est livré avec des contrôles de ressources que la plupart des utilisateurs n’ouvrent jamais. Sur Windows et macOS, le volet Ressources plafonne l’ensemble de la machine virtuelle Docker (mémoire, CPU, swap, taille de l’image disque), ce qui est votre filet de sécurité pour empêcher Docker de manger votre ordinateur portable. En plus de cela, les limites des conteneurs individuels fonctionnent toujours comme d’habitude via l’interface CLI, les fichiers de composition et le dialogue d’édition de conteneur de l’interface de bureau sur les versions récentes.

La raison pour laquelle il figure sur cette liste est qu’il est déjà installé sur la plupart des machines de bureau. Si vous n’avez pas encore parcouru les paramètres de Docker Desktop et défini une limite matérielle de mémoire et de CPU sur le moteur, faites-le d’abord. Chaque limite de conteneur en dessous s’appuie sur cette limite extérieure.

Où il échoue : Les limites du moteur sont la vedette du spectacle ; l’édition par conteneur dans l’interface de bureau est fonctionnelle mais réduite. Sous Linux, l’application de bureau est facultative, la plupart des gens utilisent le daemon directement. L’utilisation professionnelle supérieure à 250 employés ou 10 millions de dollars de chiffre d’affaires nécessite un abonnement payant.

Prix : Gratuit pour usage personnel, éducation, petite entreprise et open source. Pro coûte 9 $/utilisateur/mois, Team 15 $, Business 24 $.

Plates-formes : Windows, macOS, Linux.

Télécharger : Docker.com

Conclusion : Définissez d’abord la limite du moteur, puis superposez un autre outil pour les limites par conteneur. Gratuit pour la plupart des utilisateurs domestiques.

4. CasaOS, meilleur choix pour les homelabs débutants

CasaOS est une couche de système d’exploitation auto-hébergée complète qui se situe au-dessus de Debian, Ubuntu, Raspberry Pi OS ou similaire. Installez avec un script d’une ligne et vous obtenez un écran d’accueil de type téléphone, un magasin d’applications avec des installateurs en un clic (Jellyfin, Immich, Pi-hole, Home Assistant et environ 150 autres), et une vue de conteneur qui montre le CPU et la mémoire par application en temps réel. Pour chaque conteneur installé, vous pouvez ouvrir les paramètres et définir une limite de mémoire, des allocations CPU et des mappages de ports et de volumes sans toucher à un fichier de composition.

C’est l’outil que nous mettrions devant un ami qui a acheté un mini PC pour exécuter Plex et Home Assistant et n’a jamais ouvert un terminal. Les limites ne sont qu’à un curseur, et l’interface rend évident quels conteneurs sont illimités.

Où il échoue : Hôte unique, Linux uniquement et d’avis. Le magasin d’applications organise un ensemble spécifique d’images, les conteneurs personnalisés ou hors catalogue fonctionnent via l’importateur de composition mais ne bénéficient pas de l’UX en un clic. Le rythme du développement s’est ralenti par rapport à il y a quelques années, bien que le projet soit toujours activement maintenu.

Prix : Gratuit, open source sous licence Apache 2.0.

Plates-formes : Linux uniquement (Debian, Ubuntu, Raspberry Pi OS, Fedora, Arch). Accès depuis n’importe quel navigateur de bureau.

Télécharger : Site de l’éditeur · GitHub

Conclusion : Le moyen le plus simple d’exécuter un petit homelabs avec des limites sensées par application si la machine est une boîte Linux dédiée.

5. Runtipi, meilleure alternative homelabs curée pour CasaOS

Runtipi couvre le même terrain que CasaOS (magasin d’applications, installateurs en un clic, paramètres par application), mais se sent plus moderne et se déplace plus rapidement. Le magasin d’applications couvre maintenant plusieurs centaines d’applications en conteneur, toutes emballées avec des paramètres par défaut sensés, des variables d’environnement exposées dans l’interface et des paramètres de ressources exposés par application. Les limites que vous définissez dans la configuration de l’application se traduisent par des limites Docker standard au moment du déploiement.

Nous préférons Runtipi à CasaOS quand l’utilisateur est plus heureux de lire la documentation, car les paramètres ouvrent plus de boutons. Il a également une meilleure prise en charge de plusieurs architectures et un flux de mise à jour plus propre.

Où il échoue : Aussi hôte unique et Linux uniquement. Les applications qui ne sont pas dans le magasin ont toujours besoin d’un fichier de composition, importé via une définition d’application personnalisée. La communauté est plus petite que celle de Portainer ou CasaOS, les intégrations obscures nécessitent donc plus de creusage.

Prix : Gratuit, open source.

Plates-formes : Linux (Debian, Ubuntu et dérivés). Accès au navigateur à partir de n’importe quel bureau.

Télécharger : Site de l’éditeur · GitHub

Conclusion : Le choix si CasaOS vous semble trop simple et Portainer trop brut.

6. Yacht, meilleure interface web légère

Yacht est une interface web plus petite et plus rapide dans le même espace que Portainer, destinée aux utilisateurs qui veulent une liste de conteneur propre, des modèles en un clic et un volet de paramètres qui inclut les limites CPU et mémoire sans la surface supplémentaire de gestion de pile ou d’orchestration multi-hôte. Les modèles vivent dans des fichiers JSON et peuvent être partagés par la communauté, ce qui facilite le déploiement d’une image avec des limites raisonnables intégrées.

Pour un seul hôte Docker où vous vous souciez principalement de démarrer, arrêter, limiter et mettre à jour les conteneurs, Yacht est plus rapide à apprendre que Portainer et maintient le flux entier dans deux ou trois écrans.

Où il échoue : Le développement est beaucoup plus lent que celui de Portainer ou Dockge, et le projet est en longue bêta. Le multi-hôte n’est pas sur la feuille de route. Certaines fonctionnalités Docker plus récentes arrivent plus tard ici que dans les outils plus grands.

Prix : Gratuit, open source.

Plates-formes : S’exécute partout où Docker s’exécute. Accès au navigateur à partir de n’importe quel bureau.

Télécharger : GitHub

Conclusion : Une interface web ordonnée pour un seul hôte Docker quand Portainer se sent comme overkill.

7. Lazydocker, meilleure interface terminal pour triage rapide

Lazydocker n’est pas un gestionnaire, c’est un moniteur avec des mains. Lancez-le dans un terminal et vous obtenez une vue pilotée au clavier de chaque conteneur avec des graphiques CPU, mémoire, E/S de bloc et réseau en direct, plus des volets de statistiques, des journaux et un raccourci shell. Quand un conteneur monte, lazydocker vous montre lequel en quelques secondes, et vous pouvez redémarrer, arrêter ou ouvrir un shell sans quitter le volet.

Pour définir réellement les limites, vous entrez dans un shell (e ouvre le conteneur dans $EDITOR ou docker exec) et utilisez docker update --cpus 2 --memory 1g <name> ou modifiez le fichier de composition. C’est l’outil que vous gardez dans une division tmux à côté de n’importe quelle interface web qui est votre principale.

Où il échoue : Pas d’interface de modification pour composer ou limiter les exécutions, vous devez taper la CLI. Docker uniquement, pas de Kubernetes.

Prix : Gratuit, open source sous licence MIT.

Plates-formes : Windows (via WSL ou PowerShell), macOS, Linux. S’installe via Homebrew, Scoop, Nix ou un binaire Go.

Télécharger : GitHub

Conclusion : Le moyen le plus rapide de voir quel conteneur se comporte mal maintenant, et d’exécuter la docker update qui le limite.

Comment choisir le bon

La plupart des auto-hébergeurs finissent avec deux. Une interface web pour définir les limites et lire l’état, plus Lazydocker dans un terminal de rechange pour le moment où un conteneur commence à se comporter mal.

FAQ

Quelle est la meilleure application gratuite pour gérer les conteneurs Docker sur bureau ?

Portainer Community Edition est le meilleur choix gratuit car il couvre l’édition de conteneurs, les piles, le multi-hôte et les statistiques en direct dans une interface de navigateur unique sans mur de paiement. Pour un flux de travail basé sur la composition, Dockge est le meilleur choix gratuit.

Comment définir une limite CPU et mémoire sur un conteneur Docker ?

Dans un fichier de composition, ajoutez deploy.resources.limits.cpus: '2.0' et deploy.resources.limits.memory: 1G sous le service, ou utilisez les anciens niveaux supérieurs cpus: 2.0 et mem_limit: 1g. Sur un conteneur en cours d’exécution, docker update --cpus 2 --memory 1g <name> applique la modification sans redémarrage. Portainer, Dockge, CasaOS, Runtipi et Yacht exposent tous ces paramètres dans l’interface.

Docker Desktop peut-il limiter les conteneurs individuels ?

Le volet Ressources de Docker Desktop plafonne l’ensemble de la machine virtuelle Docker sur Windows et macOS, et non les conteneurs individuels. Les limites par conteneur proviennent toujours des fichiers de composition, des drapeaux docker run ou d’un gestionnaire comme Portainer qui s’exécute sur le même moteur.

Portainer ou Dockge est-il meilleur pour un homelabs ?

Portainer si vous avez plus d’un hôte Docker ou si vous voulez un gestionnaire de conteneur complet. Dockge si tous vos services vivent déjà dans des fichiers de composition sur un seul hôte et que vous souhaitez la boucle d’édition la plus rapide. De nombreux homelabbers installent les deux et utilisent chacun pour ce qu’il fait de mieux.

Quelle est la différence entre CasaOS et Runtipi ?

Les deux sont des couches de système d’exploitation homelabs d’installation en une ligne avec un magasin d’applications curé et des paramètres par application. CasaOS est plus convivial pour les débutants avec un rythme de changement plus lent ; Runtipi expose plus de configuration et envoie de nouvelles applications plus rapidement. Essayez CasaOS d’abord si la simplicité compte, Runtipi si vous prévoyez de modifier les choses.

Ces outils fonctionnent-ils sur WSL sur Windows ?

Oui. Chacun des sept s’exécute dans un conteneur sur un moteur Docker dans WSL 2, et vous accédez à l’interface web depuis un navigateur Windows à localhost. Lazydocker s’exécute également directement dans le shell WSL.