# Docker/Gestion des conteneurs

* Introduction
* Gestion des conteneurs
* Dockerfile
* Docker compose
* Kubernetes
* Problèmes connus
* Introduction
* Gestion des conteneurs
* Dockerfile
* Docker compose
* Kubernetes
* Problèmes connus
[ Modifier le sommaire ]

## Registres

Les images des conteneurs peuvent être stockées dans un registre, privé ou public comme https://hub.docker.com/.
Pour en récupérer une :
Exemple :
Les images téléchargées sont stockées :
* Sur Linux, dans /var/lib/docker/.
* Sur MacOS, dans /Users/nom_utilisateur/Library/Containers/com.docker.docker/.
* Sur Windows, dans C:\ProgramData\docker\ ou C:\ProgramData\DockerDesktop\.
Pour mettre à jour une image sur un registre à partir d'un Dockerfile :

## run

"run" s'utiliser pour lancer un conteneur à partir de son image (automatiquement téléchargée si absente en local). Une fois la commande exécutée, le conteneur s'arrête. Exemple qui liste le dossier courant :
Pour rester connecté dedans, on utilise le mode interactif (-it) :
Pour partager un dossier avec la machine hôte, on peut utiliser "-v" pour "volume", ou "--mount" si le conteneur a des services. Exemple qui liste le dossier de la machine hôte partagé avec le conteneur :

## exec

Pour exécuter une commande dans un conteneur. Ex :
Autre exemple :
Fonctionne aussi avec un fichier :

### Dans tous les conteneurs

Pour lancer une commande dans tous les conteneurs, il faut créer le fichier suivant :
Ensuite le lancer avec la commande en paramètre :

### Rentrer dans un conteneur

Pour utiliser le conteneur, on peut rentrer dedans en utilisant le mode interactif :
Cela permet d'enchainer les commandes (comme si on était sur un serveur hôte en SSH).

## build

Pour lancer un conteneur à construire, il faut le faire depuis le dossier de son Dockerfile :

## ps et rm

Pour obtenir la liste des conteneurs lancés :
Idem mais avec seulement trois colonnes, triées par nom (colonne n°2) :
Pour tous les conteneurs (lancés ou pas) :
Pour en supprimer un :

## image et rmi

Pour toutes les images :
Pour en supprimer une :

## save et load

Permet de sauvegarde une image. Pour toutes les sauvegarder :
On peut ensuite les recharger (par exemple sur une autre machine) avec :
Un save sur Docker Desktop Windows 2.3 ne permettra pas un load sur la 2.2.

## stats

Pour connaitre la consommation en ressources de chaque conteneur :
Ex :

## prune

Pour supprimer les conteneurs arrêtés :
Les images :
Les réseaux :
Les conteneurs, images et réseaux inutilisés :
Enfin pour les volumes (généralement volumineux) :
Il existe des filtres :
* -a all : supprime tout.
* -f force.
* --filter : filtre par clé valeur. Si la clé est "until", alors il filtre par date (ex : until=720h).
* --volumes : supprime les volumes des objets en paramètre.
Par exemple pour purger les images et leurs volumes toutes les nuits à 3 h, on peut créer cette tâche planifiée :

## tag

Renommer une image.

## Références

* ↑ https://docs.docker.com/storage/volumes/
* ↑ https://gist.github.com/timhodson/ea11c76424e5b3f36c017d9d0ca7ad10
* ↑ https://docs.docker.com/engine/reference/builder/
* ↑ https://docs.docker.com/engine/reference/commandline/container_prune/
* ↑ https://docs.docker.com/engine/reference/commandline/system_prune/