Docker logo placed over a laptop computer keyboard.
Agence web » Actualités du digital » Docker vs Machines virtuelles Quoi le mieux pour votre maison?

Docker vs Machines virtuelles Quoi le mieux pour votre maison?

Résumé

  • Les conteneurs Docker sont des packages légers et autonomes capables de gérer efficacement divers services.

  • Les machines virtuelles sont plus robustes, imitent les ordinateurs complets et nécessitent plus de ressources, mais sont plus polyvalents à certains égards.

  • Docker est excellent pour déployer facilement plusieurs services; Les machines virtuelles sont les meilleures pour les déploiements spécifiques et plus robustes.

En ce qui concerne votre HomeLab, il existe deux technologies principales en jeu lorsqu'il s'agit d'exécuter vos services: les machines virtuelles et les conteneurs Docker. Voici une ventilation de ce qui les rend différents et que vous devez utiliser dans votre maison.

Qu'est-ce qu'un conteneur Docker?

Si vous n'aviez jamais entendu parler d'un conteneur Docker auparavant, voici la propre définition de Docker: « … un package exécutable léger, autonome et exécutable qui comprend tout ce qui est nécessaire pour exécuter une application: code, exécution, outils système, bibliothèques système et paramètres. »

En anglais simple, c'est essentiellement un package autonome qui a tout nécessaire pour exécuter le logiciel que vous souhaitez et est préconfiguré. En substance, il s'agit d'une petite installation virtuelle de la base du système d'exploitation que le conteneur utilise qui est préprogrammé pour effectuer une tâche spécifique.

En rapport

Docker pour les débutants: tout ce que vous devez savoir

Apprenez à utiliser cet outil de développement incroyablement populaire.

Par exemple, si vous lancez un conteneur Docker pour Plex, c'est un package prêt à emporter qui exécutera Plex sur n'importe quel système qui prend en charge Docker. Il est préconfiguré comme niveau de conteneur pour ce qu'il doit faire, et vous transmettez simplement quelques arguments en tant que variables environnementales, supports de volume ou liens de port pour qu'il fonctionne.

Qu'est-ce qu'une machine virtuelle?

Une machine virtuelle est comme un conteneur Docker, mais beaucoup plus robuste. Bien que les conteneurs Docker soient extrêmement légers, les machines virtuelles sont des systèmes d'exploitation entiers fonctionnant avec toutes les dépendances nécessaires pour essentiellement tout le matériel.

Cependant, vous pouvez exécuter beaucoup plus à l'intérieur d'une machine virtuelle. Une machine virtuelle émule un ordinateur complet, tandis qu'un conteneur Docker émule simplement ce qui est absolument nécessaire pour un seul logiciel.

Docker excelle à déployer de nombreux services facilement

Docker lui-même est un service qui gère d'autres services dans ses conteneurs.

Mon hôte Docker est en fait une machine virtuelle Ubuntu sur mon serveur. Dans cette instance Docker, j'ai actuellement 31 conteneurs configurés, dont 29 exécutant activement 24/7. Les services que je gère sur mon système Docker incluent des choses comme AudioRebookshelf, Plex, Pi-Hole, Ghost, Immich, OpenSpeedTest, Scrypted et bien d'autres.

En rapport

Vous devriez apprendre Docker avant d'acheter un NAS (voici comment)

Docker peut transformer votre NAS en votre propre cloud qui peut héberger vos propres applications et automatiser votre maison.

S'il est possible d'installer individuellement chaque application comme son propre package, cela me demanderait d'installer une tonne de dépendances même s'ils ne sont nécessaires que pour une seule application. Ensuite, si vous supprimez cette application à l'avenir, elle aurait des dépendances périmées qui ne sont plus nécessaires par le système d'exploitation.

Avec Docker, il est possible de faire tourner un service en quelques secondes, de l'utiliser pendant quelques semaines, puis de supprimer simplement le conteneur. Étant donné que les conteneurs Docker sont autonomes, lorsque vous en supprimez un, toutes les dépendances disparaissent avec. Rien n'est laissé en plus peut-être un volume qui peut également être supprimé avec une seule commande.

J'adore Docker pour avoir pu tourner divers services dans mon HomeLab. Vous pouvez l'utiliser pour tester un nouveau tableau de bord à domicile – si ce n'est que pour trouver qu'il ne correspond pas à vos besoins, donc vous supprimez le conteneur et en essayez un autre.

Étant donné que les conteneurs Docker sont préconfigurés, cela signifie également que vous n'avez pas à faire face à essayer d'apprendre à installer quelque chose. Prenez simplement le fichier Docker Compose ou suivez le script d'installation de la ligne de commande Docker et, généralement, je suis opérationnel en quelques minutes avec le service que je lance.

Les machines virtuelles sont les meilleures pour les déploiements plus robustes

Bien que j'aime Docker, et une grande majorité des services de mon homelab s'exécutent dessus, parfois une machine virtuelle dédiée est tout simplement le bon outil pour le travail.

Avec une machine virtuelle, vous avez un accès dédié au matériel sur votre ordinateur. Cela pourrait être utilisé pour créer une machine virtuelle de jeu, exécutant Windows 11 avec une carte graphique attachée. Il pourrait également être simplement de créer une deuxième (ou troisième ou quatrième) instance Docker.

J'avais une application Docker qui me donnait des problèmes lorsque je essayais de le lancer dans la même pile que mes autres services. Donc, j'ai tourné une deuxième et troisième machine virtuelle Ubuntu afin que les services puissent fonctionner comme s'ils étaient sur différents ordinateurs, même s'ils sont tous hébergés sur le même serveur principal.

Les machines virtuelles sont également excellentes si vous souhaitez essayer un système d'exploitation complet. Par exemple, vous pouvez installer Ubuntu Desktop sur une machine virtuelle pour fouiller avec elle au lieu de l'installer sur un ordinateur dédié. Je l'ai fait et, en partie à cause de la machine virtuelle, je vais maintenant installer Ubuntu sur l'un de mes ordinateurs de bureau afin que je puisse vraiment l'essayer et jouer avec.

En rapport

Que sont les machines virtuelles et comment fonctionnent-elles?

Pratiquement le même que le matériel.

Autrement dit, les machines virtuelles sont plus robustes que les conteneurs Docker, mais nécessitent également plus de ressources pour s'exécuter.

Lequel devez-vous utiliser dans votre maison?

Que vous puissiez utiliser un conteneur Docker ou une machine virtuelle sera vraiment au cas par cas.

À mon avis, 99% du temps, vous serez très bien avec un conteneur Docker. Les conteneurs Docker sont plus petits et plus légers que les machines virtuelles et nécessitent beaucoup moins de configuration. Je peux tourner 10 conteneurs Docker (peut-être plus) dans le temps qu'il me faut pour installer le serveur Ubuntu sur une machine virtuelle.

D'un autre côté, il y a certainement des circonstances où l'itinéraire d'une machine virtuelle est tout simplement meilleure. Je connais des gens qui exécutent des machines virtuelles Windows 11 sur leurs serveurs à partir de. J'exécute également personnellement trois machines virtuelles qui gèrent diverses tâches Docker. L'un est mon serveur Docker principal, puis les deux autres exécutent des dockers individuels pour le serveur de jeu Pterodactyl car il fonctionne le mieux sur les ordinateurs dédiés.

Comme je n'ai pas une tonne d'ordinateurs dédiés, l'exécution de pterodactyle sur des machines virtuelles distinctes est aussi bonne que possible. Au logiciel (qui est exécuté sur Docker), il se trouve sur des ordinateurs séparés. Cependant, tout est exécuté du même système, ce qui ne serait pas possible sans machines virtuelles.

★★★★★