Lantsei.lesCigales.ORG

Docker, installation

D'après Wikipedia Docker est un outil qui peut empaqueter une application et ses dépendances dans un conteneur isolé, qui pourra être exécuté sur n'importe quel serveur.

Techniquement, Docker étend le format de conteneur Linux standard, LXC, avec une API de haut niveau fournissant une solution pratique de virtualisation qui exécute les processus de façon isolée. […] Contrairement aux machines virtuelles, un conteneur Docker n'inclut pas de système d'exploitation, mais s'appuie sur les fonctionnalités du système d’exploitation fournies par la machine hôte.


Prérequis :

Installation

Mise à jour des dépôts de logiciels :

sudo apt update 

Installation des dépendances :

sudo apt install ca-certificates curl gnupg lsb-release

Ajout de la clé GPG officielle de Docker :

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 dans les sources :

sudo 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

Mise à jour des dépôts de logiciels :

sudo apt update 

Installation de Docker :

sudo apt install docker-ce docker-ce-cli containerd.io

Vérifier l'installation de Docker à l'aide de l'image hello-world :

sudo docker run hello-world

Ajout d'un utilisateur au groupe docker :

sudo adduser $LOGNAME docker

Les services

Démarrer /arrêter le service Docker :

systemctl start /stop docker

Activer /désactiver Docker au démarrage du système :

systemctl enable /disable docker

Les pricipales commandes

Les images

Récupérer des images

Lister les images :

docker image ls [OPTIONS] [REPOSITORY[:TAG]]

📝 Note:
Lister toutes les images : --all , -a
Appliquer un filtre : --filter

Pour récupérer une image (pulling), il suffit d’utiliser la commande suivante :

docker image pull repository:tag

📝 Note: Utiliser le tag latest qui ne garantit pas qu’il s’agisse de la dernière version. Préférer un tag avec un numéro de version. par exemple debian:11.

Supprimer les images

docker image rm [OPTIONS] IMAGE [IMAGE...]

📝 Note:
--force , -f : Forcer la suppression de l'image
--no-prune : Ne pas supprimer les parents non tagués

Supprimer les images non taguées

docker image prune [OPTIONS]

📝 Note:
--all , -a : Supprime toutes les images inutilisées
--force , -f : Ne pas demander de confirmation.

Rechercher une image

docker search [OPTIONS] TERM

Les conteneurs

Lister les conteneurs en cours d'execution :

docker ps

Lister les conteneurs :

docker container ls [OPTIONS] [REPOSITORY[:TAG]]

📝 Note:
Lister tous les conteneurs : –all , -a
Appliquer un filtre : –filter

Démarrer un conteneur

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

Exemples 1 :

docker run -it <conteneur> bash

📝 Note:
l'option -i : permet d’activer le mode interactif en attachant le flux entrant du conteneur à la machine hôte.
l'option -t : permet de connecter un terminal au conteneur.
la commande bash : indique d'exécuter le programme bash.

Exemple 2 :

docker run -dit --name <conteneur> -p 8080:80 httpd

📝 Note:
-d : permets de démarrer le conteneur en arrière-plan.
--name : permets de donner un nom au conteneur.
-p : permets de transférer le trafic du port 8080 de la machine hôte vers le port 80 du conteneur (-p port_hote:port_conteneur).

Puis, se connecter au conteneur en cours d’exécution

docker exec -ti <conteneur> bash

Le cycle de vie d’un conteneur

Il est possible de stopper, mettre en pause ou de supprimer un conteneur via cette commande.

docker container start /stop /pause /unpause /rm <conteneur>

Les politiques de redémarrage

Il est possible de spécifier à la commande docker container run, via l’option --restart, une politique de redémarrage du conteneur.

📝 Note:
Il en existe quatre :
no : ne redémarre pas le container automatiquement. Il s’agit de l’option par défaut.
always : redémarre le container quand il est stoppé. Si le conteneur est arrêté manuellement (via la commande docker container stop), le container redémarrera si le daemon redémarre.
unless-stopped : idem que always, mais le container ne redémarrera pas si le daemon redémarre.
on-failure : redémarre lorsque le container s’est arrêté suite à une erreur (le conteneur s’est terminé avec un code de retour différent de 0).

Par exemple :

docker run -it --restart always <conteneur> bash

Créer une image à partir d'un conteneur (non recommandé)

Installer Portainer, une interface graphique pour gérer les containeurs sous licence libre “Licence zlib”.

Page d'instruction : https://docs.portainer.io/..

portainer.png

🔗 Source: https://docs.docker.com/..