Docker installation domotique
1. Définition de Docker, kesako ?
Docker est une plateforme open-source qui permet de créer, déployer et exécuter des applications de manière isolée dans des conteneurs. Les conteneurs Docker fournissent un environnement léger et portable, encapsulant tous les éléments nécessaires à l’exécution d’une application, y compris le code, les bibliothèques, les dépendances et les variables d’environnement.
En utilisant Docker, les développeurs peuvent créer des conteneurs qui contiennent tous les éléments nécessaires à leur application, indépendamment du système d’exploitation sous-jacent. Cela facilite le déploiement et la gestion des applications dans différents environnements, que ce soit sur des machines locales, des serveurs distants ou des services cloud.
Docker permet également une gestion efficace des ressources, car les conteneurs partagent le même noyau du système d’exploitation hôte, ce qui les rend plus légers par rapport aux machines virtuelles traditionnelles. De plus, Docker propose des outils pour l’automatisation et l’orchestration des conteneurs, ce qui facilite le déploiement et la mise à l’échelle des applications.
En résumé, Docker simplifie le processus de développement, de déploiement et de gestion des applications en utilisant des conteneurs légers et portables, offrant ainsi une flexibilité et une portabilité accrues pour les développeurs et les équipes d’exploitation.
1.1 L’installation ? Les sources ?
Dans cet article, je présente une approche spécifique pour effectuer certaines tâches liées à Docker.
Cependant, il est important de noter qu’il existe différentes façons de réaliser ces tâches et que les préférences peuvent varier en fonction des besoins et des préférences individuelles.
Pour une référence complète et officielle, vous pouvez consulter la documentation officielle de Docker sur le lien suivant : https://docs.docker.com. La documentation officielle fournit des informations détaillées, des guides, des exemples et des références pour vous aider à tirer le meilleur parti de Docker et à explorer différentes approches en fonction de vos besoins spécifiques.
Docker Explorer, site pour trouvé toute la liste des containers possible: https://hub.docker.com/search?q=
ISO Ubuntu server: https://releases.ubuntu.com/22.04.3/ubuntu-22.04.3-desktop-amd64.iso
1.2 Les prérequis ?
Dans cette article, nous partirons d’une machine virtuelle Ubuntu Server 22.04 sur un serveur Proxmox. La machine virtuelle sera provisionnée avec 2 VCPU, 4 Go de RAM et une carte réseau connectée à Internet. Pour accéder à la machine, nous aurons besoin d’un utilisateur non-root et de connaître son mot de passe. Cette configuration nous permettra d’exécuter Docker et de commencer à travailler avec des conteneurs. Veuillez noter que ces spécifications peuvent être ajustées en fonction de vos besoins et des capacités de votre infrastructure.
Les prérecquis de docker d’après le site officiel: https://docs.docker.com/desktop/install/linux-install/#system-requirements
2. Avant l’installation de docker sur votre machine
Pour vous connecter à la machine en utilisant SSH, vous aurez besoin de l’adresse IP de la machine et du nom d’utilisateur. Supposons que l’adresse IP de la machine virtuelle soit 10.0.0.15 et que le nom d’utilisateur soit « dockeruser ». Voici la commande SSH que vous pouvez utiliser pour vous connecter :
ssh dockeruser@10.0.0.15
Donc nous allons dans un premier temps récupere l’ip de la machine, pour mon cas, directement dans la console de mon serveur proxmox ou dans depuis mon serveur DHCP (box internet, adguard, etc)
Assurez-vous d’avoir un client SSH installé sur votre machine locale. Une fois la connexion établie, vous pourrez effectuer des copier-coller plus facilement entre votre machine locale et la machine virtuelle.
2.1 Mise à jour de l’environnement
Nous allons dans un premier temps faire les mises à jour du serveur pour être sur la dernière release de l’OS
sudo apt update
Ensuite, exécutez la commande suivante pour mettre à jour tous les paquets installés sur votre système :
sudo apt upgrade
Lorsque vous êtes invité à confirmer la mise à jour, appuyez sur « Y » puis sur Entrée pour continuer.
Mise à jour en cours, cela peut prendre plus ou moins de temps en fonction de votre connexion internet et votre configuration.
Si vous souhaitez également mettre à jour la version de votre système os, vous pouvez exécuter la commande suivante pour lancer la mise à jour de la distribution :
sudo do-release-upgrade
Suivez les instructions à l’écran pour procéder à la mise à jour. Notez que cette commande peut nécessiter un certain temps et peut nécessiter votre confirmation à plusieurs reprises.
3. Installation de Docker
3.1 Suppression des anciennes installation
Dans un premier temps, on vérifie qu’il n’y a pas d’autres installation de docker sur notre machine
sudo apt-get remove docker docker-engine docker.io containerd runc
Suppression des dossiers « Docker »
rm -r $HOME/.docker/desktop
sudo rm /usr/local/bin/com.docker.cli
sudo apt purge docker-desktop
3.2 Ajout des référentiels Docker
Exécutez les commandes suivantes pour ajouter les référentiels Docker, il serviront pour l’installation de Docker sur votre machine
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
On ajoute le repository pour les sources: (copier tous le bloc et coller le dans votre terminal
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Avant de continuer, on va mettre à jour les repository de la machine et faire les petites mises à jour nécessaire :
sudo apt update
3.3 Installation de docker
Pour installer la dernière version, exécutez :
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Lorsque vous êtes invité à confirmer la mise à jour, appuyez sur « Y » puis sur Entrée pour continuer.
Une fois l’installation finie, nous allons tester si le service « Docker » fonctionne.
Pour cela il existe un petit container qui ce nomme « Hello-World » et qui a son lancement valide votre celle-ci
sudo docker run hello-world
On verra dans la capture ci dessus que le container hello-world répond bien avec la phrase : Hello from docker
Félicitations ! Vous avez réussi à installer Docker sur votre machine. Vous êtes maintenant prêt à commencer à utiliser Docker pour gérer vos conteneurs.
4. Les petits « plus » lors de l’installation
Cependant, pour une utilisation optimale de Docker, il est recommandé de mettre en place certaines petites optimisations. Elles peuvent améliorer les performances, la sécurité et la facilité d’utilisation de Docker.
Voici quelques recommandations :
4.1 Utilisateur
Utilisation de l’utilisateur « dockeruser » pour la gestion des containers et autres fonctionnalités:
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
La variable $USER prendra votre utilisateur en cours d’utilisation sur votre machine.
Pour vérifier votre configuration, vous pouvez faire un logout sur votre machine avec la commande « logout » et refaire une connexion SSH
Une fois sur votre machine avec votre utilisateur « dockeruser » pour mon cas, on va tester si je peux lancer des containers sans passé par la commande sudo
docker run hello-world
4.2 Docker en service
Démarrer docker avec le système: (il faudra mettrele mot de passe)
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
Et voilà, docker est en place et fonctionnel !
Have fun !
La suite aux prochains épisodes !
Jonathan