docker
ConteneursPaquet : docker-ce-cliÀ manier avec soin
Construit et fait tourner des conteneurs. docker ps, docker logs et docker exec sont le trio du dépannage ; docker compose décrit plusieurs conteneurs dans un fichier plutôt que dans une ligne de commande de deux cents caractères.
Une erreur avec cette commande peut détruire des données ou vous couper l'accès
docker system prune -a --volumesetdocker rm -vdétruisent des volumes, donc des données. Et un port publié par Docker est ouvert depuis l'extérieur même siufwle refuse : Docker écrit ses propres règles devant celles d'ufw.
Ce que font ses options dans les leçons
Tiré du même glossaire que les leçons affichent sous leurs commandes ; les deux ne peuvent pas se contredire.
docker -d- Détaché : le conteneur tourne en arrière-plan.
docker -i- Garde l'entrée standard ouverte.
docker -t- Alloue un pseudo-terminal.
-itensemble donnent une session interactive. docker -a- Avec
docker ps, inclut les conteneurs arrêtés. docker -p- Publie un port du conteneur sur l'hôte (
-p 127.0.0.1:5432:5432). Préciser l'adresse évite d'exposer le service à tout le réseau. docker -v- Monte un volume ou un répertoire de l'hôte dans le conteneur.
docker --name- Nomme le conteneur, au lieu du nom aléatoire attribué par défaut.
docker --rm- Supprime le conteneur dès qu'il s'arrête, pour ne pas accumuler les conteneurs morts.
docker --memory- La mémoire maximale que le conteneur peut utiliser (
--memory=512m). La plus petite valeur acceptée est6m. Au plafond, l'OOM killer est déclenché dans le cgroup du conteneur, pas sur l'hôte. docker --cpus- La part de processeur accordée au conteneur. Sur un hôte à deux processeurs,
--cpus=1.5en accorde au plus un et demi. Un dépassement fait attendre le conteneur, il ne le tue pas. docker --no-stream- Sur
docker stats, affiche un seul relevé puis rend la main, au lieu de rafraîchir en continu. La forme utilisable dans un script ou collée dans un ticket. docker --format- Un gabarit Go plutôt que la fiche complète :
docker inspect --format '{{.State.ExitCode}}'ne renvoie que le champ demandé. docker --filter- Restreint la liste à ce qui correspond.
docker ps -a --filter 'exited=137'ne montre que les conteneurs terminés par SIGKILL. docker compose -d- Détaché : les services tournent en arrière-plan.
docker compose -f- Le fichier compose à utiliser, quand ce n'est pas celui du répertoire courant.
docker compose --build- Reconstruit les images avant de démarrer.
docker compose -v- Sur
down, supprime aussi les volumes nommés du projet, donc les données. C'est la seule option de cette leçon qui détruit quelque chose d'irrécupérable. docker compose -q- N'affiche que les identifiants des conteneurs, un par ligne, au lieu du tableau complet. Utile pour comparer l'identifiant avant et après un
up -det savoir si le conteneur a réellement été recréé. docker --password-stdin- Lit le mot de passe sur l'entrée standard au lieu de l'attendre en argument. Le secret ne passe donc ni par l'historique du shell ni par la liste des processus, où
psle donnerait à tout utilisateur de la machine. docker -u- Nomme le compte avec lequel s'authentifier auprès du registre. Sur un serveur, c'est un compte robot ou un jeton de déploiement, jamais le compte d'une personne.
Les leçons qui l'enseignent
- Image, conteneur, volume — et quand s'en passerDocker : conteneurs pour héberger une application Node
- Installer Docker : le dépôt officiel, pas celui d'UbuntuDocker : conteneurs pour héberger une application Node
- Un conteneur sans limite de mémoire, et le processus que le noyau tue à sa placeDocker : conteneurs pour héberger une application Node
- Publier un port n'est pas écouter dessusDocker : conteneurs pour héberger une application Node
- Un Dockerfile pour une application NodeDocker : conteneurs pour héberger une application Node
- Les données survivent au conteneur, le port traverse le pare-feuDocker : conteneurs pour héberger une application Node
- Une image qui n'est pas publiqueDocker : conteneurs pour héberger une application Node
