J M G

- -
Articles
Software
Automation
Games
-
  37 / Installation docker- - -
logodebian Docker est une plate-forme logicielle qui permet de concevoir, tester et déployer des applications rapidement. Il permet d'executer des images de programmes dans des conteneurs qui peuvent communiquer ou pas avec l'extérieur ou entre eux. Cette article traite de l'installation et de la configuration de docker sur une débian 11. C'est un résumé de la documentation officiel disponible à l'adresse :https://docs.docker.com/engine/install/debian/

Installation avec les dépots

Il existe plusieurs méthode d'installation je choisis celle par dépot (repository) car elle permet de mettre à jour docker facilement lorsque l'on lance une mise à jour de son OS.

Paquets nécessaires

[www@ghanassia.com]sudo apt-get update
[www@ghanassia.com]sudo apt-get install ca-certificates curl gnupg lsb-release

Installation des clés officielles

[www@ghanassia.com]curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Ajout du dépot docker aux sources d'apt

[www@ghanassia.com]echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Installation des paquets de docker

[www@ghanassia.com]sudo apt-get update
[www@ghanassia.com]sudo apt-get install docker-ce docker-ce-cli containerd.io

On vérifie que ca fonctionne

[www@ghanassia.com]sudo docker run hello-world

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:2498fce14358aa50ead0cc6c19990fc6ff866ce72aeb5546e1d59caac3d0d60f
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/

Docker est maintenant installé et opérationnel, mais on peut y apporter des configurations supplémentaires. Attention cet article ne traite pas de sécurité, il est important de se renseigner sur les implications de docker et de sa configuration (surtout pour le réseau).

Utiliser docker avec son utilisateur non-root

[www@ghanassia.com]sudo /usr/sbin/groupadd docker
[www@ghanassia.com]sudo /usr/sbin/usermod -aG docker nom_de_votre_user
[www@ghanassia.com]newgrp docker
[www@ghanassia.com]docker run hello-world
La dernière commande devrait fournir la même sortie que précédemment, si ca ne marche pas essayez après avoir redémarré votre machine.

Paramétrer le démarrage automatique de docker

[www@ghanassia.com]sudo systemctl enable docker.service
[www@ghanassia.com]sudo systemctl enable containerd.service

Paramétrer l'accès à distance

sudo systemctl edit docker.service
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://192.168.1.127:2375

On peut modifier le fichier avec les valeurs qui nous interessent puis on recharge docker et on test le résultat avec la commande netstat
[www@ghanassia.com]sudo systemctl daemon-reload
[www@ghanassia.com]sudo systemctl restart docker.service
[www@ghanassia.com]sudo netstat -lntp | grep dockerd

tcp 0 0 192.168.1.127:2375 0.0.0.0:* LISTEN 4317/dockerd

Installation de compose

Compose est un outil pour définir et executer de multiple conteneur. Il utilise des fichiers au forat YAML pour configurer vos conteneurs. Les commandes suivante installent compose sous linux et vérifie que tout s'est bien passé.
[www@ghanassia.com]sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 664 100 664 0 0 6446 0 --:--:-- --:--:-- --:--:-- 6446
100 12.1M 100 12.1M 0 0 19.6M 0 --:--:-- --:--:-- --:--:-- 40.2M

[www@ghanassia.com]sudo chmod +x /usr/local/bin/docker-compose
[www@ghanassia.com]sudo docker-compose --version

docker-compose version 1.29.2, build 5becea4c

Vous trouverez plus d'information sur le site officiel à cette adresse : https://docs.docker.com/compose/

On a une bonne base pour commencer, on peut télecharger des images sur le dépot officiel à l'adresse https://hub.docker.com/search?type=image Il reste encore beaucoup à faire, un des problèmes les plus courant c'est la configuration réseaux, le forwarding ainsi que les ports utilisés par le système et les containers. Mais ceci fera l'objet d'un autre article.
- - -