Installer Docker sous Manjaro

Installer Docker sous Manjaro

Posté le 02/12/2023 | 0 commentaire dans Développement Docker | Retour à la liste

Table des matières

    1. Mises à jour
    2. Installation de Docker
    3. Petit test
      1. Lancer Docker
      2. Lancement au démarrage
      3. Sudo or not sudo
      4. Hello world

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.

Max Koder
Max Koder

Développeur en mauvaise herbe, électronicien et bricoleur à mes heures de hobby perdues, compteur de grains de riz, tenteur de tiramisu, mais surtout papa.

Principal développeur de 299Ko, j'essaye de maintenir ce CMS qui me tient à coeur.

Commentaires

Il n'y a pas de commentaires

Ajouter un commentaire