Le seul outil qui facilite la gestion de chaque homelab
Avez-vous entendu des gens parler de Docker mais vous ne savez pas de quoi il s'agit ni si vous en avez besoin ? Docker est un outil fantastique qui, je pense, appartient à chaque homelab. Voici ce qu'est Docker et pourquoi c'est le seul outil qui rend mon homelab facile à gérer.
Sommaire
Qu’est-ce que Docker ?
Non, ce n'est pas le nom d'un conteneur
Docker est le nom d'une plate-forme sur laquelle les conteneurs s'exécutent. Il s'agit à la fois d'un outil de ligne de commande et d'une interface de bureau, selon celui avec lequel vous préférez travailler.
Docker est devenu la norme de l'industrie pour l'exécution d'applications conteneurisées dans les environnements homelab et de production. Le Docker Hub, un référentiel de plus de 10 000 000 (10 millions) d'images publiques, est également l'un des endroits incontournables pour exécuter des applications dans Docker (ou tout autre gestionnaire de conteneurs).
Docker est l'un des gestionnaires de conteneurs les plus connus, ce qui en fait également l'une des options les mieux documentées à utiliser. Si vous débutez avec les conteneurs, je vous recommande fortement d'utiliser Docker comme entrée, c'est plus simple et la communauté dispose d'une tonne de support disponible.
Que sont les conteneurs et sont-ils exclusifs à Docker ?
Docker est populaire, mais pas le seul acteur en ville
Docker a contribué à la création de l'Open Container Initiative, ou OCI, que de nombreuses autres plates-formes utilisent désormais. Même si Docker lui-même n’est peut-être pas entièrement gratuit et open source, l’OCI qu’il a contribué à démarrer l’est.
Pour ceux qui ne souhaitent pas utiliser Docker, il existe certainement d'autres plates-formes compatibles OCI, notamment Podman, Containerd + Nerdctl, Rancher Desktop ou même LXC.
Certains de ces programmes s'exécutent sur le sous-système Docker et d'autres utilisent leur propre implémentation de conteneurs. En fin de compte, cependant, ils gèrent tous des conteneurs.
Le moyen le plus simple d’expliquer ce qu’est un conteneur est de le référencer en tant qu’application. Chaque image de conteneur est conçue pour faire généralement une ou deux choses, et c'est tout. Vous pouvez créer vos propres images qui font plus, mais il est généralement recommandé d'utiliser des conteneurs à usage unique.
Chaque conteneur que vous exécutez disposera à la fois d'un stockage persistant stocké soit dans un volume Docker, soit dans un dossier sur votre ordinateur, et d'un stockage qui sera détruit à chaque mise à jour du conteneur. Cela rend les conteneurs plus faciles à utiliser que les applications dédiées dans de nombreux scénarios, car vos préférences sont stockées dans un fichier facile à trouver, et si vous désinstallez le conteneur par accident, vous pouvez le réinstaller et conserver tous vos paramètres tels qu'ils étaient.
En quoi les conteneurs diffèrent des machines virtuelles
Préconfiguré et ultra léger
Si vous n'avez jamais entendu parler ou utilisé un conteneur auparavant, l'une des meilleures façons de le décrire est de parler d'une machine virtuelle légère. pas une machine virtuelle.
Un conteneur est un système d'exploitation miniature en conteneur exécuté sur votre ordinateur et préconfiguré pour exécuter l'application spécifique pour laquelle il est conçu. Cela signifie que vous pouvez obtenir un conteneur pour Plex basé sur l'image Arch Linux, mais il n'inclut que les composants nécessaires d'Arch pour exécuter Plex et pas plus.
Les conteneurs peuvent également facilement interagir avec votre système d'exploitation hôte, alors que cela est souvent plus difficile pour les machines virtuelles. Avec les conteneurs, vous montez souvent des dossiers ou des fichiers à partir de l'ordinateur hôte pour qu'ils puissent les lire ou même les lire/écrire. Souvent, les conteneurs vous demanderont de monter quelque chose comme un dossier interne /data ou /config dans un dossier de votre ordinateur. Cela vous permet un accès complet à ces fichiers, et c’est en fait la raison pour laquelle les conteneurs sont si robustes.
L'autre jour, j'ai fait quelque chose sur mon serveur Docker qui a fait tomber plusieurs conteneurs. Tout ce que j'avais à faire était de les redémarrer et de pointer les dossiers montés vers les dossiers de mon stockage, et les services étaient de nouveau opérationnels comme s'ils ne s'étaient jamais arrêtés.
Exécuter votre tout premier conteneur
C'est plus facile que tu ne le penses
Exécuter un conteneur Docker est en réalité très simple. Vous disposez de deux manières principales d'exécuter un conteneur Docker : docker run ou via Docker Compose.
Je n'ai pas été un grand utilisateur de Docker Compose par le passé, mais je commence à l'utiliser de plus en plus. Par souci de simplicité, je vais vous montrer comment utiliser docker run et Docker Compose, afin que vous puissiez facilement voir un exemple des deux.
Commencez par installer Docker sur votre ordinateur. Cela varie en fonction du système d'exploitation que vous utilisez, mais une fois que vous l'avez installé, vous êtes prêt à déployer votre premier conteneur.
Une fois Docker installé, dirigez-vous vers votre terminal et exécutez sudo docker run hello-world. Cela devrait vous donner une sortie montrant un message de Docker avec les étapes nécessaires pour le générer.
Du côté de Docker Compose, créez un fichier docker-compose.yml très simple avec le code suivant, puis exécutez docker compose up:
services:
hello:
image: hello-world
Tant que vous voyez un résultat similaire à ma capture d'écran ci-dessus, vous êtes prêt à passer à l'étape suivante de votre parcours Docker !
Docker Compose peut simplifier votre flux de travail
Copiez un fichier, modifiez quelques lignes, démarrez vos services
Je viens de te montrer comment utiliser les deux docker run et Docker Compose, mais Docker Compose est vraiment ce que vous devriez utiliser si possible. C'est une méthode plus simple, surtout avec des déploiements plus complexes.
Avec Docker Compose, vous pouvez prendre votre temps pour créer un seul fichier pour le conteneur Docker que vous souhaitez lancer. Modifier un fichier Compose est également très simple à faire. Avec une commande docker run, si vous devez modifier un paramètre de déploiement (variable d'environnement, port, montage de liaison ou autre), vous devez alors arrêter le conteneur, réécrire la commande docker run et la redéployer.
Avec Docker Compose, vous disposez du fichier docker-compose.yml dans un dossier à partir duquel vous souhaitez exécuter le conteneur. Le fichier lui-même est facile à modifier à tout moment. Pour lancer le conteneur, vous exécutez soit docker compose up juste l'exécuter une fois et l'arrêter, ou docker compose up -d si vous souhaitez que le conteneur s'exécute en arrière-plan. Si vous apportez des modifications au fichier Compose, docker compose up -d encore une fois, et maintenant ces changements prennent effet.
Sauf si vous utilisez une interface utilisateur Web pour Docker comme Portainer (ce que je fais), Docker Compose est tout simplement le moyen le plus simple de s'interfacer avec Docker. Vous pouvez facilement modifier les paramètres d'un conteneur et le redéployer sans avoir à essayer de vous rappeler à quoi ressemblait votre commande d'origine.
Docker est un outil extrêmement précieux. En fait, Docker gère tout mon homelab. Je ne pourrais pas exécuter les services que je propose sans Docker.
Si vous n’avez jamais utilisé Docker auparavant, essayez-le. Cela révolutionnera la façon dont vous déployez et maintenez les services dans votre environnement homelab (ou de production).
