Commandes Docker : les commandes du quotidien
Commencons directement par les plus cool (et les plus simples sont en bas).
Les Advanced
- Faire du ménage dans les containers:
docker rm -v $(docker ps -a | grep /usr/local/ | awk '{print $1}')
Encore plus simple si vous utilisez fish, vous tapez:docker rm -v (docker ps -a | grep rancher/ | awk '{print $1}')
et vous gagnez 1$.
Ndlr: Depuis Docker a évolué (si, si) et il y a l'option -q qui liste uniquement les id des containers. La commande peut donc être simplifiée en:
$ docker rm -v $(docker container ls -aq)
$ docker rmi $(docker image ls -q)
Il y aussi depuis la version API 1.25, la commande prune. A noter au passage, qu'ils uniformisent les commandes en ajoutant le type de commande après docker:
# Equivalents:
$ docker ps
$ docker container ls
# Le ménage de printemps:
$ docker container prune
# que vous pouvez filtrer, par exemple pour supprimer ceux créés il y a 1/2h
$ docker container prune --force --filter "until=30m"
Les basiques
1/ Images
- Liste des images:
docker images
- Chercher une image sur le hub:
docker search mon/image
- Supprimer une image:
docker rmi mon/image
2/ Les containers:
- Liste des containers actifs:
docker ps
- Liste de tous les containers:
docker ps -a
- Démarrage et stop par
docker start moncontainer
ou avec stop - Supprimer
docker rm -v moncontainer
Postgresql :
Un exemple de script pour démarrer une instance de base de donnée Postgresql:
#!/bin/sh docker run -d --name pgdb \ --restart unless-stopped \ --network NB_NET \ --user 998:997 \ -v /etc/passwd:/etc/passwd:ro \ -v $PWD/data:/var/lib/postgresql/data \ -e POSTGRES_PASSWORD=pwd \ -e POSTGRES_USER=user \
-e POSTGRES_DB=database \
-p 15432:5432 \ postgres:12.2
Et aussi un script pour faire un backup d'une table (ou de la base en entier) :
docker run --rm --network NB_NET -v /home/user/.pgpass:/.pgpass -v $PWD/bckp:/tmp postgres:12.2 sh -c 'pg_dump -h pgdb -p 5432 -d database -U user -t public.matable > /tmp/matable.sql'