Gestion du service Docker
Pour démarrer le démon Docker :
sudo systemctl start docker
Recharger la configuration du démon :
sudo systemctl daemon-reload
Redémarrer le service :
sudo systemctl restart docker
Arrêter proprement le service :
sudo systemctl stop docker
Pour stopper ou forcer l’arrêt d’un conteneur :
docker stop <conteneur>
docker kill <conteneur>
Configuration de l’environnement
Installer un éditeur dans un conteneur basé sur Debian/Ubuntu :
apt-get update && apt-get install -y vim
Changer le miroir des dépôts APT :
sed -i 's|/archive.ubuntu.com/|/mirrors.aliyun.com/|g' /etc/apt/sources.list
apt-get clean
apt-get update
apt-get upgrade -y
Manipulation des images
Télécharger une image :
docker pull ubuntu:22.04
Rechercher une image sur le registre :
docker search postgresql
Lister les images locales :
docker images
Supprimer une ou plusieurs images :
docker rmi monimage:tag
docker rmi -f image1 image2
docker rmi -f $(docker images -q)
Ajouter un tag à une image locale :
docker tag ubuntu:22.04 monrepo/ubuntu:custom
Créer une image à partir d’un conteneur modifié :
docker run -it --name base ubuntu /bin/bash
# dans le conteneur
touch /app/test.txt
exit
docker commit -m "ajout du fichier test" -a "admin" base monimage:custom
Exporter une image dans une archive :
docker save -o monimage_backup.tar monimage:custom
Restauerr une image depuis une archive :
docker load -i monimage_backup.tar
# ou
docker load < monimage_backup.tar
Envoyer une image vers un registre :
docker tag monimage:custom utilisateur/monimage:v1
docker push utilisateur/monimage:v1
Gestion des conteneurs
Lancer un conteneur interactif :
docker run -it --name test ubuntu /bin/bash
Mapper un port hôte vers un port conteneur :
docker run -it -p 8080:80 nginx
docker run -it -P nginx
Démarrer un conteneur en arrière-plan :
docker run --name tache -d ubuntu /bin/sh -c "while true; do echo 'bonjour'; sleep 1; done"
Appliquer une politique de redémarrage automatique :
docker run --restart=unless-stopped --name tache -d ubuntu /bin/sh -c "while true; do echo 'bonjour'; sleep 1; done"
Ouvrir un shel dans un conteneur en cours d’exécution :
docker exec -it tache bash
Attacher le terminal au conteneur :
docker attach tache
Copier un fichier entre le conteneur et l’hôte :
docker cp tache:/app/fichier.txt ./fichier.txt
Consulter les journaux d’un conteneur :
docker logs tache
docker logs -f --tail 100 tache
Lister les processus d’un conteneur :
docker top tache
Supprimer un ou plusieurs conteneurs :
docker rm tache
docker rm -f $(docker ps -aq)
Volumes et persistance
Monter un volume entre l’hôte et le conteneur :
docker run -it -v /chemin/hote:/chemin/conteneur ubuntu
Monter un volume en lecture seule :
docker run -it -v /chemin/hote:/chemin/conteneur:ro ubuntu
Inspecsion et maintenance
Obtenir les détails d’une image ou d’un conteneur :
docker inspect <id_ou_nom>
Nettoyer tous les objets Docker inutilisés :
docker system prune -a --volumes
Export et import de conteneurs
Exporter un conteneur vers une archive :
docker export tache > tache_backup.tar
Importer une archive en tant qu’image :
cat tache_backup.tar | docker import - tache_importee:v1