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
