# [Docker] Cheat-sheet ## Introduction Cette page répertorie des commandes docker pour administrer vos conteneurs. ## Commandes de base #### Démarrer un conteneur ```bash docker run -d -p --name ``` #### Arrêter un conteneur ```bash docker stop ``` #### Supprimer un conteneur ```bash docker rm ```

Le conteneur doit être arrêté pour le supprimer.

#### Redémarrer un conteneur ```bash docker restart ``` ## Images #### Télécharger une image Docker ```bash docker pull ``` #### Lister les images présente sur le système ```bash docker images ``` #### Supprimer une image docker ```bash docker rmi ``` #### Supprimer les images inutilisées ```bash docker images -f dangling=true ``` ## Réseaux #### Création de réseau Docker Pour créer un réseau simple sur Docker, il faut exécuter la commande suivante : ```bash docker network create --driver ```
**Types de drivers****Description****Commande**
**bridge** (default)Créer un réseau Naté et isolé pour les conteneurs.docker network create --driver bridge <NET\_NAME>
**host**Utilise directement le réseau de l'hôtedocker run --network host --name <CT\_NAME> <IMG>
**overlay**Permet aux conteneurs qui ne sont pas sur le même hôte d'appartenir à un même réseau (très utilisé avec Docker Swarm).docker network create --driver overlay <NET\_NAME>
**macvlan**Donne une adresse MAC aux conteneur ce qui les fait apparaître comme de véritables appareils du réseau de l'hôte.docker network create -d macvlan --subnet=<NET\_ID/MASK> --gateway=<IP> -o parent=<IFACE> <NET\_NAME>
#### Lister les réseaux existants ```bash docker network ls ``` #### Afficher le détail d'un réseau ```bash docker network inspect ``` #### Supprimer un réseau ```bash docker network rm ``` #### Connecter un conteneur à un réseau ```bash docker network connect ``` #### Déconnecter un conteneur d'un réseau ```bash docker network disconnect ``` #### Créer un réseau isolé ```bash docker network create --driver bridge --subnet isolated_network ``` ## Volumes #### Créer un volume ```bash docker volume create ``` #### Attacher un volume à un conteneur ```bash docker run -d -v :/data --name ```

Les volumes docker sont stockés dans **/var/lib/docker/volumes** .

#### Faire du bind mount Ce type de montage spécifie l'emplacement du volume sur le système hôte : ```bash docker run -d -v /root/my_app/data:/data --name ``` #### Lister les volumes ```bash docker volume ls ``` #### Afficher les détails d'un volume ```bash docker volume inspect ``` #### Créer un volume en lecture seule ```bash docker run -d -v /root/my_app/data:/data:ro --name ``` #### Supprimer un volume ```bash docker volume rm ``` #### Nettoyer les volumes non utilisés ```bash docker volume prune ``` #### Copier un fichier de l'hôte sur un volume ```bash docker cp /path/to/file.txt :/data/file.txt ``` #### Faire une sauvegarde d'un volume ```bash docker run --rm --volumes-from -v $(pwd):/backup ubuntu tar cvzf /backup/backup.tar.gz /data ``` ## Dockerfile Le **Dockerfile** est un fichier permettant de créer une image docker pour votre application : ``` # Utilise l'image Python comme base FROM python:3.8 # Définit l'espace de travail WORKDIR /app # Copie les fichiers de l'application dans l'espace de travail COPY . /app # Installe les dépendances RUN pip install -r requirements.txt # Expose le port 5000 du conteneur EXPOSE 5000 # Lance le script au démarrage de l'application. CMD ["python", "app.py"] ``` #### Build une image à partir d'un Dockerfile ```bash docker build -t . ``` ## Sécurité #### Lancer un conteneur avec les droits d'un utilisateur non-root ```bash docker run -u ``` #### Créer un secret ```bash echo "" | docker secret create - ``` #### Ajouter un health check sur un conteneur Cette option permet d'éteindre un conteneur automatique si celui-ci est en panne (pour éviter les problèmes de sécurité et les comportements inattendus) : ```bash docker run --name --health-cmd="curl --fail http://localhost:80/health || exit 1" -d ``` ## Débogage #### Ouvrir un shell dans un conteneur ```bash docker exec -it /bin/bash ``` #### Vérifier l'état du service ```bash systemctl status docker ``` #### Vérifier le fonctionnement de docker ```bash docker run hello-world ``` #### Afficher les conteneurs actifs ```bash docker ps ```

Vous pouvez ajouter l'option **-a** pour afficher tous les conteneurs.

#### Afficher les logs d'un conteneur ```bash docker logs ``` #### Afficher la configuration d'un conteneur ```bash docker inspect ``` #### Afficher les statistiques des conteneurs ```bash docker stats ``` #### Écouter les événements docker ```bash docker events ``` #### Afficher les changements dans le système de fichier d'un conteneur ```bash docker diff ``` ## Mettre à niveau un conteneur #### Arrêt du conteneur ```bash docker container stop ``` #### Recherche du nom de l'ancienne image ```bash docker ps -f name= --format "{{.Image}}" ``` #### Suppression du conteneur ```bash docker container rm ``` #### Suppression de l'ancienne image ```bash docker rmi : ``` #### Redéploiement du conteneur ```bash docker run -d --name : ```