Jon T.

Docker Cookbook - Containers

Posted in docker

Comment …

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

Références