Posté le 02/12/2023 | 0 commentaire dans Développement Docker | Retour à la liste
Table des matières
Table des matières
Je suis passé sous Arch depuis 6 ou 7 ans, et plus précisément avec Manjaro. Et pour ma culture d’homme du monde (ahah), mais surtout pour ne plus subir les railleries des puristes (joke bis), je me suis dit que moi aussi, j’allais me mettre à Docker.
J'ai longtemps utilisé Docker avec une surcouche, Lando, qui n'est plus trop fonctionnel avec les dernières versions du système de containers.
En plus, Lando (et les autres, comme DevilBox de mémoire), consomment pas mal de ressources pour uniquement un système qui va gérer pour vous les images et la persistence des données.
L’intérêt que je vois à cela, comparé à Xampp, est que je puisse tester diverses versions de PHP pour mes scripts, et surtout tester sur un serveur Nginx, ce que je ne peux pas faire actuellement.
Allez, c’est le week-end, il neige, autant en profiter et plonger la tête dans le shell plutôt que dans le moteur de la voiture : Ce soir, j’aurai installé Docker sur Manjaro.
Sincèrement, il n’y a rien d’intéressant ici pour ceux qui connaissent un peu. C’est plus un mémo pour moi et un tremplin pour pouvoir aller plus loin dans un autre billet que j’espère pouvoir sortir sous peu.
Mises à jour
Avant d’installer quoi que ce soit, on va si besoin installer les mises à jour disponibles et vérifier l’existence des nouveaux paquets. Faudrait pas se retrouver à installer un vieux bouzin…
Donc on va vérifier l’existence de mises à jour depuis les dépôts et paquets AUR (-a
) :
pamac checkupdates -a
Puis installer les mises à jour (si disponibles) :
pamac upgrade -a
Oui je préfère pamac
à pacman
, cependant sachez que si j’avais lancé pacman -Su
, ça revenait à la même chose. Cependant, pamac étant le gestionnaire de logiciels (la logithèque graphique, c’est lui) choisi par les dévs de Manjaro, celui-ci a l’avantage d’aller chercher dans tous les dépôts, et pas seulement les dépôts officiels.
Sinon, remarquez que je n’utilise pas sudo
devant pamac
: Si besoin, pamac vous demandera l’autorisation et donc le mot de passe pour exécuter l’action avec les droits nécessaires.
Installation de Docker
Venons en au but. Comme dans beaucoup de distributions, Docker est déjà dans les dépôts, pas besoin de s’enquiquiner plus que ça. Ouf 🙂
pamac install docker
Avant l’installation, il vous sera demandé d’installer une dépendance (PIGZ), qui permet d’utiliser plusieurs cœurs lorsque plusieurs images seront à compresser. L’intérêt semble nul puisque cette librairie ne sert que pour la compression. Or dans la pratique, c’est plutôt la décompression qui est utilisée (lorsque vous téléchargerez des images (conteneurs).
Petit test
Avant de vous laisser partir, on va tester que l’installation a été faite correctement et surtout, glisser quelques commandes à savoir.
On va en premier lieu chercher à connaître la version de Docker :
sudo docker version
Si l’installation s’est bien passée, vous devriez avoir ceci :
Client:
Version: 24.0.7
API version: 1.43
Go version: go1.21.3
Git commit: afdd53b4e3
Built: Sun Oct 29 15:42:02 2023
OS/Arch: linux/amd64
Context: default
Server:
Engine:
Version: 24.0.7
API version: 1.43 (minimum version 1.12)
Go version: go1.21.3
Git commit: 311b9ff0aa
Built: Sun Oct 29 15:42:02 2023
OS/Arch: linux/amd64
Experimental: false
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
On a là un tas d’informations. En revanche en bas, on voit que Docker n’arrive pas à se connecter au daemon (serveur). Normal, on ne l’a pas lancé, on va faire ça.
Lancer Docker
Pour démarrer le serveur (daemon), il nous suffit de taper dans un shell :
sudo systemctl start docker
Et pour l’arrêter :
sudo systemctl stop docker
Pour info, la commande systemctl
est inhérente à systemd, le système d’initialisation choisi par Manjaro. C’est cet outil qui nous permet de gérer les différents services d’une machine. Si vous voulez un peu d’histoire sur systemd, je vous renvoie vers LinuxFr.org.
Artix Linux par exemple, aussi basée sur Arch, utilise principalement OpenRC en tant qu’alternative à systemd.
Une fois le serveur Docker lancé, vous devriez avoir plus d’informations le concernant en lançant un sudo docker version
:
sudo docker version ✔
Client:
Version: 24.0.7
API version: 1.43
Go version: go1.21.3
Git commit: afdd53b4e3
Built: Sun Oct 29 15:42:02 2023
OS/Arch: linux/amd64
Context: default
Server:
Engine:
Version: 24.0.7
API version: 1.43 (minimum version 1.12)
Go version: go1.21.3
Git commit: 311b9ff0aa
Built: Sun Oct 29 15:42:02 2023
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v1.7.9
GitCommit: 4f03e100cb967922bec7459a78d16ccbac9bb81d.m
runc:
Version: 1.1.10
GitCommit:
docker-init:
Version: 0.19.0
GitCommit: de40ad0
Lancement au démarrage
Pour que Docker se lance automatiquement au démarrage du système, il suffit de lancer un petit :
sudo systemctl enable docker
Ainsi plus besoin de taper la commande pour lancer activer Docker.
Enfin, si au contraire vous souhaitez qu’il ne se lance plus au démarrage, lancez :
sudo systemctl disable docker
Sudo or not sudo
Enfin, il faut savoir que seul l’utilisateur root (ou un utilisateur avec les droits de super administrateur) a le droit de manager Docker. Si ne voulez plus avoir à monter les droits à chaque commande docker
, il va falloir ajouter l’utilisateur courant au groupe docker, créé normalement par le script d’installation de Docker :
sudo usermod -aG docker $USER
Notez qu’il faut redémarrer la machine pour que les modifications sur le groupe soient effectives.
Pour les impatients, vous pouvez toujours vous connecter en tant que groupe docker :
newgrp docker
Hello world
Finalement, on se le fait ce test ?
Pour savoir si tout a fonctionné, on va lancer un conteneur de test, créé pour cela : hello-world :
docker run hello-world
Et vous devriez avoir à peu près ceci :
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete
Digest: sha256:d58e752213a51785838f9eed2b7a498ffa1cb3aa7f946dda11af39286c3db9a9
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
La commande run
suivi du nom de l’image va tenter de lancer l’image hello-world depuis le disque dur local. S’il ne la trouve pas, il ira la chercher sur le hub officiel. Puis il créé un conteneur à partir de cette image.
Sachez que chaque fois que vous lancerez cette commande, un nouveau conteneur sera créé. Relancer un conteneur arrêté est possible bien sûr, mais pas de la même façon. On verra cela dans un prochain billet.
J’arrête ici pour l’installation. L’usage viendra plus tard, j’attends vraiment de me familiariser et surtout comprendre les rouages de Docker, et voir comment je peux l’adapter à mon besoin.
Commentaires
Il n'y a pas de commentaires