docker
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
docker [2025/02/02 11:32] – luc | docker [2025/08/02 11:30] (Version actuelle) – luc | ||
---|---|---|---|
Ligne 12: | Ligne 12: | ||
Pas de difficultés, | Pas de difficultés, | ||
- | ===== Concept | + | ===== Images vs Container |
Il faut différencier les images et les containers. L' | Il faut différencier les images et les containers. L' | ||
Ligne 21: | Ligne 21: | ||
Ces containers contiennent l' | Ces containers contiennent l' | ||
+ | Les données persistantes (indépendantes de l' | ||
+ | |||
+ | On peut automatiser le déploiement de service Docker avec [[docker_compose|Docker-compose]]. | ||
===== Commandes Docker ===== | ===== Commandes Docker ===== | ||
Ligne 85: | Ligne 88: | ||
# ou avoir plusieurs versions | # ou avoir plusieurs versions | ||
# c'est un cache de DL des images en fait :) | # c'est un cache de DL des images en fait :) | ||
- | docker | + | docker |
- | |||
- | ### DOCKER RMI | ||
# supprimer les images (et pas les containers) | # supprimer les images (et pas les containers) | ||
# il ne doit plus y avoir de container faisant référence à cette image | # il ne doit plus y avoir de container faisant référence à cette image | ||
+ | docker image rm < | ||
+ | docker rmi < | ||
+ | # Supprimer toutes les images inutilisées (pas de container y faisant référence) | ||
+ | docker image prune | ||
+ | |||
+ | ### Démarrage auto | ||
+ | # sur un nouveau container | ||
+ | docker run -d --restart unless-stopped redis | ||
+ | |||
+ | # sur un container existant | ||
+ | docker update --restart always metabase | ||
+ | |||
+ | # options : | ||
+ | # no: don't start automatically (default) | ||
+ | # on-failure[: | ||
+ | # always: démarre le container au démarrage du daemon docker, même si arrêté à la main | ||
+ | # unless-stopped: | ||
+ | |||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | ===== Les Volumes ===== | ||
+ | |||
+ | Les volumes sont des espaces de stockage existant hors des containers. Ils sont utilisés pour avoir un stockage permanent de données.\ | ||
+ | Fonctionnalités: | ||
+ | * Ils peuvent être partagés entre plusieurs containers | ||
+ | * Ils peuvent avoir un nom (named volume) ou être " | ||
+ | * Ils peuvent être créés et manipulés sans container | ||
+ | * Il peut exister plusieurs " | ||
+ | * Si on démarre un container avec un volume, si le volume n' | ||
+ | * Quand on supprime un container, le named volume associé reste. Il faut le supprimer à la main si on veut s'en débarrasser. | ||
+ | * Le concept est de créer un container avec un volume, puis de facilement supprimer le container, l' | ||
+ | * Quand on monte un volume sur un dossier déjà existant (dans le container), les données sont copiées dans le volume (utile pour le backup) | ||
+ | |||
+ | Par défaut, les volumes sont ici : ''/ | ||
+ | |||
+ | <code bash> | ||
### DOCKER VOLUME | ### DOCKER VOLUME | ||
## Les dockers volume sont les couches de données | ## Les dockers volume sont les couches de données | ||
Ligne 98: | Ligne 137: | ||
docker volume ls | docker volume ls | ||
- | # supprimer les volumes non utilisés | + | # Inspecter un volume (sa localisation sur le système de fichier de l' |
+ | docker volume inspect < | ||
+ | |||
+ | # supprimer | ||
docker volume prune | docker volume prune | ||
Ligne 104: | Ligne 146: | ||
docker volume rm < | docker volume rm < | ||
+ | # Créer un volume hors container | ||
+ | docker volume create < | ||
+ | # monter un volume dans un container | ||
+ | docker run --mount type=volume, | ||
+ | # dst=< | ||
+ | # autres options : | ||
+ | # readonly | ||
+ | # dst aliases : destination, | ||
+ | # volume-nocopy : If present, data at the destination isn't copied into the volume if the volume is empty. | ||
+ | # By default, content at the target destination gets copied into a mounted volume if empty. | ||
- | |||
- | ### DOCKER SEARCH | ||
- | # chercher des images dans le Docker Hub | ||
</ | </ | ||
+ | |||
+ | Une procédure simple de sauvegarde: | ||
+ | * On arrête le container | ||
+ | * sur le système hôte, on copie le volume (rsync, borg) | ||
+ | * On redémarre le container | ||
+ | |||
+ | Docker en propose une autre, basé sur le partage de volume entre plusieurs container, [[https:// | ||
+ | |||
+ | ===== Docker compose ===== | ||
+ | |||
+ | Docker compose est à la fois un programme '' | ||
+ | L' | ||
+ | Et ça épouse bien le cycle de vie d'un service sous Docker, qui consiste à séparer les données (volumes) de l' | ||
+ | |||
+ | Voici l' | ||
===== Recommandations ===== | ===== Recommandations ===== | ||
Ligne 116: | Ligne 180: | ||
* Ne pas utiliser Docker au sein d'un autre système de container style LXC, si besoin d' | * Ne pas utiliser Docker au sein d'un autre système de container style LXC, si besoin d' | ||
- | * Mieux vaut ne pas gérer les auto-start & co via systemd et consorts. Il vaudrait mieux passer directement par l' | + | * Mieux vaut ne pas gérer les auto-start & co via systemd et consorts. Il vaudrait mieux passer directement par l' |
- | * Les docker-files sont parait-il hyper bien, mais je ne sais pas ce dont il s'agit (un système pour ne pas avoir des cli ultralongues et ainsi éviter les typo ?) | + | * Les docker-files sont des recettes de cuisine pour **construire** une image |
* '' | * '' |
docker.1738495954.txt.gz · Dernière modification : de luc