TP : Créer Lister et Détruire des conteneurs
Docker pull et chercher sur Docker Hub
- Visitez hub.docker.com
- Cherchez l'image de Nginx (un serveur web), et téléchargez la dernière version (
pull
).
docker pull nginx
Que se passe-t-il ?
La commande run fait appel à docker pull si l'image n'est pas présente.
Docker stop/start : stopper et redémarrer un conteneur
docker stop <nom_ou_id_conteneur> # ne détruit pas le conteneur
docker start <nom_ou_id_conteneur> # le conteneur a déjà été créé
docker start --attach <nom_ou_id_conteneur> # lance le conteneur et s'attache à la sortie standard
On peut désigner un conteneur soit par le nom qu'on lui a donné, soit par le nom généré automatiquement, soit par son empreinte (toutes ces informations sont indiquées dans un docker ps
ou docker ps -a
).
Essayez de stopper et redémarrer le conteneur "mycontainer".
Docker kill : conteneurs récalcitrants
docker run --rm -d --name sleep ubuntu sleep 3600
Essayez de stopper ce conteneur. Que se passe-t-il ?
docker kill <conteneur>
Docker stats : conteneurs et consommation
Il est temps de faire un petit docker stats
pour découvrir l'utilisation du CPU et de la RAM de vos conteneurs !
docker stats
Ctrl+c pour quitter
docker stats mycontainer
Docker rm : Faire du ménage
Lancez la commande
docker ps -aq -f status=exited
Que fait-elle ?
S'il y a encore des conteneurs qui tournent, supprimez un des conteneurs restants
docker rm <id_ou_nom>
Avancé : combinez docker rm et la commande ps précédente
Docker prune : Faire du ménage automatiquement
La commande prune supprimme automatiquement tous les conteneurs dans l'état STOPPED.
docker container prune
Note: on voit que la plupart des commandes qu'on a exécuté sont en fait dépendantes d'une ressource "container" dans la ligne de commande docker.
docker container ps
docker container run
... etc
Avancé : L'option restart=always
docker run -d --name redis --restart=always redis --bad-flag
Que se passe-t-il quand vous faites la liste des conteneurs ? Stopper le conteneur.
docker run -d --name redis --restart=always redis
docker exec -it redis bash -c "kill 1"
docker ps
Que se passe-t-il ?
Plus d'infos sur https://docs.docker.com/engine/reference/run/#restart-policies---restart
Portainer : un interface web d'aministration
Installation : docker run -d -p 8000:8000 -p 9443:9443 -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
Puis accéder à localhost:9000
Doc d'install : https://docs.portainer.io/start/install-ce/server/docker/linux