Comment …
- Docker
- Containers
- Lancer un Hello World
- Lancer un container interactif
- Lancer un container démon
- Afficher les logs d’un container
- Stopper un container
- Relancer un container
- Tuer un container (envoi d’un signal “KILL” par défaut)
- Supprimer un container
- Lister les containers
- Mapper des ports de la machine hôte vers les ports exposés du container
- Afficher quel port de la machine hôte est mappé avec un port donné du container
- Afficher les processus en cours d’exécution dans un container
- Inspecter la configuration et statut d’un container (retour au format JSON)
Docker
Afficher la version de Docker
docker version
Afficher l’aide Docker
# afficher la liste de toutes les commandes Docker disponibles
docker --help
# afficher l'aide d'utilisation d'une commande Docker spécifique
docker <command> --help
Containers
Lancer un Hello World
docker run <image name> <command to run inside container>
docker run ubuntu /bin/echo 'Hello world'
Lancer un container interactif
docker run -t -i <image name> <command to run inside container>
docker run -t -i ubuntu /bin/bash
-t
: assigner un terminal au container-i
: récupération de l’entrée standard du container
Lancer un container démon
docker run -d <image name> <command to run inside container>
docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"
-d
: lancer le container en tâche de fond
Afficher les logs d’un container
# affiche les derniers logs
docker logs <container name|id>
# affiche les logs en temps réel (e.g. tail -f)
docker logs -f <container name|id>
Stopper un container
docker stop <container name|id>
Relancer un container
docker start <container name|id>
# stop puis start un container
docker restart <container name|id>
Tuer un container (envoi d’un signal “KILL” par défaut)
docker kill <container name|id>
Supprimer un container
docker rm <container name|id>
Remarque: le container doit être stoppé avant de pouvoir être supprimé
Lister les containers
# liste les containers en cours d'exécution uniquement
docker ps
# liste tous les containers
docker ps -a
Mapper des ports de la machine hôte vers les ports exposés du container
docker run -d -P <image name> <command to run inside container>
# lancer en tâche de fond (-d) une webapp python tournant sur le port 5000 du container
docker run -d -P training/webapp python app.py
# idem mais en précisant un port explicite sur la machine hôte
docker run -d -p 49155:5000 training/webapp python app.py
-P
: mapping de ports aléatoires (entre 32768 to 61000) et éphémères de la machine hôte vers les ports exposés du container
docker ps
# mapping du port 49155 de la machine hôte vers le port 5000 du container
0.0.0.0:49155->5000/tcp
Afficher quel port de la machine hôte est mappé avec un port donné du container
docker port <container name|id> <container port>
docker port nostalgic_morse 5000
0.0.0.0:49155
Afficher les processus en cours d’exécution dans un container
docker top <container name|id>
Inspecter la configuration et statut d’un container (retour au format JSON)
docker inspect <container name|id>
# afficher un élément spécifique de la configuration via un format de template
docker inspect -f <template format> <container name|id>
# e.g. adresse ip du container
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' nostalgic_morse