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 [2020/06/23 21:09] – luc | docker [2025/03/13 17:46] (Version actuelle) – luc | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Docker ====== | ||
+ | Pendant longtemps j'ai fuit Docker. D' | ||
+ | |||
+ | Mais le temps passant, les besoins changent et je dois maintenant déployer des applications au boulot. Puis je n'ai ni le temps (et peut-être pas le courage), de gérer le déploiement de ces applications à partir des sources ou autre solution très consommatrices de temps et de skill. | ||
+ | |||
+ | Enfin, la containerisation n'est plus une mode, mais c'est devenu un véritable moyen de faire de l' | ||
+ | |||
+ | Bref, je me suis mis (un peu) à Docker | ||
+ | |||
+ | ===== Installation ===== | ||
+ | Pas de difficultés, | ||
+ | |||
+ | ===== Concept ===== | ||
+ | Il faut différencier les images et les containers. L' | ||
+ | |||
+ | On peut créer des containers (à partir de notre propre travail ou d'une image récupérée sur le Hub).\ | ||
+ | On peut démarrer des containers.\ | ||
+ | On peut arrêter des containers. | ||
+ | |||
+ | Ces containers contiennent l' | ||
+ | |||
+ | |||
+ | ===== Commandes Docker ===== | ||
+ | Pour l' | ||
+ | |||
+ | De base la commande Docker s' | ||
+ | |||
+ | <code bash> | ||
+ | ### DOCKER RUN | ||
+ | # créer et démarrer un container | ||
+ | docker run -p 8080:80 -v ~/ | ||
+ | |||
+ | # /!\ la commande ne rend la main QUE lorsque tous les process à l' | ||
+ | # options utiles : | ||
+ | #-d | ||
+ | # (detach) run le container en background (non bloquant sur la cli, et ça c'est bien) | ||
+ | #-v / | ||
+ | # (volume) crée un bind entre un dossier sur le système de fichier de l' | ||
+ | # utile pour la persistance de données et/ou le backup | ||
+ | #-p host: | ||
+ | # fait un renvoi des ports de l'host vers le container (utile si plusieurs containers servent du web, chacun sur le port 80 par exemple) | ||
+ | #--name NOM | ||
+ | # pour nommer le container que l'on crée | ||
+ | # -e ENV_VARIABLE=value | ||
+ | # Passer des variables env au container lors de sa création | ||
+ | # < | ||
+ | # nom de l' | ||
+ | # si l' | ||
+ | |||
+ | |||
+ | ### DOCKER CREATE | ||
+ | # crée un container sans le démarrer | ||
+ | |||
+ | |||
+ | ### DOCKER START | ||
+ | # démarre un container déjà créé | ||
+ | docker start <ID> | ||
+ | |||
+ | #est-ce que ça marche avec le name ? à tester | ||
+ | |||
+ | |||
+ | ### DOCKER STOP | ||
+ | # arrête un container | ||
+ | docker stop <ID> | ||
+ | |||
+ | |||
+ | ### DOCKER PS | ||
+ | # liste les containers actifs (run) | ||
+ | docker ps | ||
+ | |||
+ | # liste tous les containers | ||
+ | docker ps -a | ||
+ | |||
+ | |||
+ | ### DOCKER RM | ||
+ | # supprimer des containers | ||
+ | # on peut récupérer les id avec ' | ||
+ | docker rm < | ||
+ | |||
+ | |||
+ | ### DOCKER IMAGES | ||
+ | # lister les images | ||
+ | # car plusieurs container peuvent être réalisés à partir d'une même image | ||
+ | # ou avoir plusieurs versions | ||
+ | # c'est un cache de DL des images en fait :) | ||
+ | docker images | ||
+ | |||
+ | |||
+ | ### DOCKER RMI | ||
+ | # supprimer les images (et pas les containers) | ||
+ | # il ne doit plus y avoir de container faisant référence à cette image | ||
+ | |||
+ | |||
+ | ### DOCKER VOLUME | ||
+ | ## Les dockers volume sont les couches de données | ||
+ | # Lister les volumes | ||
+ | docker volume ls | ||
+ | |||
+ | # supprimer les volumes non utilisés | ||
+ | docker volume prune | ||
+ | |||
+ | # supprimer un volume en particulier | ||
+ | docker volume rm < | ||
+ | |||
+ | |||
+ | ### 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: | ||
+ | |||
+ | |||
+ | ### DOCKER SEARCH | ||
+ | # chercher des images dans le Docker Hub | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | ===== Recommandations ===== | ||
+ | |||
+ | Ci dessous un recueil de recommandations lues ici ou là, à méditer, à approfondir au besoin : | ||
+ | |||
+ | * 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' | ||
+ | * 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 ?) | ||
+ | * '' |