Aller au contenu principal

Commandes à connaître

Voici une liste complète des commandes de gestion des conteneurs Docker, accompagnée d'explications et d'exemples pratiques pour vous aider à mieux comprendre leur utilisation.

1. Lister les conteneurs

Commandes :

  • Lister les conteneurs en cours d'exécution :

    docker ps
    • Affiche uniquement les conteneurs actifs.
  • Lister tous les conteneurs (actifs et arrêtés) :

    docker ps -a

Exemple :

docker ps -a

Résultat :

CONTAINER ID   IMAGE          COMMAND              STATUS                      PORTS             NAMES
123abc456def mariadb:10.11 "docker-entrypoint…" Exited (0) 5 minutes ago mariadb_db
789ghi012jkl python:3.11 "python app.py" Up 2 minutes 0.0.0.0:5000->80 python_app

2. Créer et démarrer un conteneur

Commandes :

  • Créer et démarrer un conteneur :

    docker run [OPTIONS] IMAGE [COMMAND]
  • Exemple minimal :

    docker run ubuntu
    • Cela démarre un conteneur basé sur l'image ubuntu.
  • Démarrer un conteneur en mode interactif (avec un terminal) :

    docker run -it ubuntu bash
    • -it : Permet d'interagir avec le terminal du conteneur.
    • bash : Lance le shell Bash dans le conteneur.
  • Exécuter un conteneur en arrière-plan (mode détaché) :

    docker run -d nginx
    • -d : Mode détaché (le conteneur tourne en arrière-plan).
  • Nommer un conteneur lors de sa création :

    docker run --name my_container nginx

3. Démarrer et arrêter un conteneur

Commandes :

  • Démarrer un conteneur arrêté :

    docker start CONTAINER_NAME_OR_ID
  • Arrêter un conteneur actif :

    docker stop CONTAINER_NAME_OR_ID

Exemple :

docker start mariadb_db
docker stop python_app

4. Redémarrer un conteneur

Commandes :

docker restart CONTAINER_NAME_OR_ID

Exemple :

docker restart python_app

5. Supprimer un conteneur

Commandes :

  • Supprimer un conteneur arrêté :

    docker rm CONTAINER_NAME_OR_ID
  • Forcer la suppression d'un conteneur actif :

    docker rm -f CONTAINER_NAME_OR_ID
  • Supprimer tous les conteneurs arrêtés :

    docker container prune

Exemple :

docker rm mariadb_db
docker container prune

6. Afficher les logs d'un conteneur

Commandes :

docker logs CONTAINER_NAME_OR_ID
  • Suivre les logs en temps réel :
    docker logs -f CONTAINER_NAME_OR_ID

Exemple :

docker logs -f python_app

7. Exécuter une commande

Commandes :

docker exec [OPTIONS] CONTAINER_NAME_OR_ID COMMAND
  • Exécuter une commande Bash dans un conteneur :

    docker exec -it CONTAINER_NAME_OR_ID bash
    • -it : Permet d'interagir avec le terminal.
  • Exécuter une commande simple :

    docker exec CONTAINER_NAME_OR_ID ls /app

Exemple :

docker exec -it python_app bash

8. Inspecter un conteneur

Commandes :

  • Afficher les détails d'un conteneur :

    docker inspect CONTAINER_NAME_OR_ID
  • Afficher uniquement l'adresse IP du conteneur :

    docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' CONTAINER_NAME_OR_ID

Exemple :

docker inspect mariadb_db
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' python_app

9. Copier des fichiers hôte / conteneur

Commandes :

  • Copier un fichier de l'hôte vers le conteneur :

    docker cp /path/to/local/file CONTAINER_NAME_OR_ID:/path/in/container
  • Copier un fichier du conteneur vers l'hôte :

    docker cp CONTAINER_NAME_OR_ID:/path/in/container /path/to/local/file

Exemple :

docker cp my_script.py python_app:/app/
docker cp python_app:/app/output.txt ./output.txt

10. Attacher à un conteneur actif

Commandes :

docker attach CONTAINER_NAME_OR_ID
  • Permet de se connecter au terminal d'un conteneur en cours d'exécution.
  • Attention : Si vous quittez avec Ctrl+C, cela arrête également le conteneur.

11. Sauvegarder et restaurer un conteneur

Commandes :

  • Créer une image à partir d'un conteneur actif :

    docker commit CONTAINER_NAME_OR_ID NEW_IMAGE_NAME
  • Exporter un conteneur sous forme d'archive :

    docker export CONTAINER_NAME_OR_ID > container.tar
  • Importer un conteneur à partir d'une archive :

    docker import container.tar NEW_IMAGE_NAME

Exemple :

docker commit python_app my_python_image
docker export python_app > python_app.tar
docker import python_app.tar my_python_image

12. Surveiller les ressources utilisées

Commandes :

docker stats
  • Affiche en temps réel l'utilisation des ressources (CPU, mémoire, réseau) par les conteneurs actifs.

13. Renommer un conteneur

Commandes :

docker rename OLD_NAME NEW_NAME

Exemple :

docker rename python_app my_python_app

14. Pause et reprise d'un conteneur

Commandes :

  • Mettre un conteneur en pause :

    docker pause CONTAINER_NAME_OR_ID
  • Reprendre un conteneur en pause :

    docker unpause CONTAINER_NAME_OR_ID

Exemple :

docker pause python_app
docker unpause python_app

15. Supprimer les ressources inutilisées

Commandes :

docker system prune
  • Supprime tous les conteneurs arrêtés, les images non utilisées et les réseaux inutilisés.
  • Pour tout supprimer, y compris les volumes :
    docker system prune -a --volumes

Résumé des commandes essentielles

ActionCommande
Lister les conteneursdocker ps / docker ps -a
Démarrer un conteneurdocker start CONTAINER_NAME_OR_ID
Arrêter un conteneurdocker stop CONTAINER_NAME_OR_ID
Supprimer un conteneurdocker rm CONTAINER_NAME_OR_ID
Voir les logs d'un conteneurdocker logs CONTAINER_NAME_OR_ID
Exécuter une commande dans un conteneurdocker exec -it CONTAINER_NAME_OR_ID COMMAND
Inspecter un conteneurdocker inspect CONTAINER_NAME_OR_ID
Copier des fichiersdocker cp
Nettoyer les conteneurs inutilesdocker container prune
astuce

En maîtrisant ces commandes, vous serez en mesure de gérer efficacement vos conteneurs Docker dans n'importe quel environnement. 🚀

Test de mémorisation/compréhension


Quelle commande permet de démarrer un conteneur en mode interactif avec un terminal Bash ?


Quelle commande affiche uniquement l'adresse IP d'un conteneur ?


Quelle commande permet de supprimer tous les conteneurs arrêtés et les réseaux inutilisés ?


Quelle est la différence entre `docker attach` et `docker exec` ?


Quelle commande permet de créer une image Docker à partir d’un conteneur existant ?


Que fait la commande `docker system prune -a --volumes` ?


Quelle commande permet de copier un fichier du conteneur vers l’hôte ?


Que fait la commande suivante : `docker logs -f CONTAINER_NAME` ?


Quelle commande permet de renommer un conteneur existant ?


Quelle commande permet de surveiller l'utilisation des ressources (CPU, mémoire, réseau) par les conteneurs actifs ?


info

Pour l'instant, cette partie n'est pas complète et je vous invite à consulter les parties suivantes :