Commandes Docker utiles à connaitre pour débuter

Exécuter une commande dans un container

Exemple pour accéder à une ligne de commande de ce serveur

docker exec -it moncontainer bash

Exécuter les conteneurs d’un fichier docker-compose.yml

La commande s’éxecute en utilisant les infos du fichier présent dans le dossier courant. Le -d permet de lancer en mode persistant. Lancer cette commande une nouvelle fois permet de mettre à jour les conteneurs définis en fonction des données indiquées dans le docker-compose.yml

$ docker-compose up -d

Désinstaller Docker

sudo apt-get --purge remove docker docker-engine docker.io docker-ce

Afficher la liste des containers

$ docker ps -a

Supprimer une image

Supprime une image stockée localement. Attention, si c’est une image que vous avez vous-même créé assurez vous d’avoir une sauvegarde ; vous pouvez notamment en partager une sur le Hub de Docker.

docker rmi myimage

Arrêter et supprimer tous les containers

$ docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)

###Logs

https://docs.docker.com/config/containers/logging/configure/#configure-the-default-logging-driver

https://serverfault.com/questions/637996/clearing-deleting-docker-logs

https://stackoverflow.com/questions/41091634/how-to-clean-docker-container-logs

Afficher le contenus des logs

$ docker logs mon_container

Cette commande risque d’afficher pas mal d’historique. Pour y remédier il est possible de lancer cette commande qui restreindra l’affichage aux requêtes en cours. Noter le flag --details qui permet d’afficher davantage de logs, notamment dans le cas d’un conteneur d’un serveur web par exemple, pour afficher les erreurs php.

docker logs --tail 20 -f --details mon_container

Lister l’espace occupé par les logs des conteneurs Docker

du -chs /var/lib/docker/containers/*/*json.log

Nettoyer les logs


echo "" > $(docker inspect --format='{{.LogPath}}' mon_container)

Afficher une liste de container filtrée

La commande docker ps exporte souvent un liste de données bien trop large. Vous pouvez utiliser la commande suivante comme un modèle pour n’afficher que les colonnes qui vous sont utiles.

Pro tip : ajoutez cette commande en tant qu’alias dans votre fichier .bashrc pour l’avoir toujours sous la main


docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Names}}\t{{.Status}}"