Mémo utilisation Docker

Rappel de quelques termes

  • image : une image est une collection ordonnée de modifications sur un filesystem
  • conteneur : un conteneur est le résultat de l'exécution d'une image

Construire une image

docker build <répertoire>

Paramètres utiles

  • --tag : permet de donner un nom à l'image, évite qu'elle soit identifiée par un simple nombre hexa
  • --rm=true: supprime les images intermédiaires à la fin du build

Le répertoire passé en paramètre doit contenir les éléments nécessaires à la contruction de l'image, en particulier le Dockerfile.

Lister les images

docker images

Paramètres utiles

  • --all : liste même les images intermédiaires
  • --digests : affiche le hash identifiant l'image
  • --quiet: format court, n'affiche que les ID

On peut passer en plus en paramètre un tag (avec le joker * éventuellement) pour ne lister que les images correspondants à ce tag.

Supprimer une image

docker rmi <ID de l'image>

Pour supprimer toutes les images non utilisées : docker images --quiet | xargs docker rmi

Démarrer un conteneur à partir d'une image

docker run <image>

Paramètres utiles

  • --env : fixe une variable d'environnement
  • --name : définit le nom du conteneur (sinon Docker en assigne un par défaut)
  • --volume <rep hote>:<rep conteneur> : monte un répertoire dans le filesystem du conteneur
  • -publish <port hote>:<port conteneur>/<tcp|udp> : publie un port du conteneur sur un port de l'hôte
  • --restart <no|on-failure[:max-retries]|unless-stopped|always> : définit comment Docker doit redémarrer le conteneur si celui-ci s'arrête
  • --detach : lance le conteneur en arrière plan
  • --interactive : garde STDIN ouvert même si le conteneur n'est pas attaché au terminal
  • --tty : alloue un pseudo tty

Lister les conteneurs

docker ps

* -a : pour voir même les conteneurs arrêtés

Liste des commandes

La documentation des commandes se trouve à : https://docs.docker.com/engine/reference/commandline/cli/

Commandes générales

  • info : Informations générales sur le serveur Docker
  • inspect : Permet d'obtenir des infos sur un objet du serveur (conteneur, image, volume…)
  • version : Infos de version du serveur

Commandes sur les images

  • build : Construit une image à partir d'un Dockerfile
  • load : Charge une image à partir d'un fichier d'archive
  • save : Sauve une ou plusieurs images dans un fichier d'archive
  • import : Importe le contenu d'un fichier TAR pour construire le système de fichiers d'une image
  • rmi : Supprime une image
  • commit : Crée une nouvelle image à partir d'un conteneur modifié
  • tag : Crée un tag qui référence une image source
  • images : Liste les images installées localement
  • history : Affiche l'historique des opérations sur une image

Commandes sur les conteneurs

  • create : Crée un nouveau conteneur (sans le démarrer)
  • start : Démarre un conteneur
  • kill : Tue un conteneur (à éviter, termine violemment les process à l'intérieur)
  • stop : Arrête un conteneur (envoie un signal d'arrêt aux processus contenus)
  • pause : Met les processus d'un conteneur en pause
  • unpause : Sort de pause un conteneur
  • restart : Redémarre un conteneur
  • attach : Attache les entrées/sortie locale à un conteneur en exécution
  • diff : Inspecte les changements sur le système de fichiers d'un conteneur
  • logs : Accès aux logs d'un conteneur
  • ps : Liste les conteneurs en exécution
  • port : Liste les mappages de ports
  • stats : Affiche les statistiques d'un conteneur
  • top : Affiche les processus dans un conteneur
  • wait : Attend la terminaison d'un conteneur
  • cp : Copie des fichiers locaux dans un conteneur
  • exec : Exécute une commande dans un conteneur existant
  • export : Exporte le système de fichiers d'un conteneur dans une archive
  • rename : Renomme un conteneur
  • rm : Supprime un conteneur
  • run : Exécute une commande dans un contneur
  • update : Modifie la configuration d'un conteneur

Commandes sur les registry

  • login : Se connecte à une registry Docker (par défaut Docker Hub)
  • logout : Se déconnecte de la registry
  • search : Cherche une image
  • pull : Tire une image de la registry pour la rendre disponible localement sur le serveur
  • push : Pousse une imagelocale dans la registry

Commandes sur les volumes

  • volume create : Crée un volume
  • volume rm : Supprime un volume
  • volume prune : Supprime tous les volumes inutilisés
  • volume ls : Liste le contenu d'un volume
  • volume inspect : Affiche les infos d'un volume

Commandes de gestion du swarm (cluster de serveurs Docker)

  • swarm ca : Affiche ou modifie le certificat d'autorité du cluster
  • swarm init : Initialise un cluster swarm
  • swarm join : Attache un noeud à un cluster
  • swarm leave : Détache un noeud d'un cluster
  • swarm join-token : Affiche le jeton pour rejoindre un cluster
  • swarm unlock : Déverrouille un manager du cluster (après un redémarrage)
  • swarm unlock-key : Affiche la clé de déverrouillage
  • swarm update : Change les paramètres du cluster