« Docker/Gestion des conteneurs » : différence entre les versions

Contenu supprimé Contenu ajouté
DannyS712 (discussion | contributions)
m <source> -> <syntaxhighlight> (phab:T237267)
Ligne 8 :
== run ==
"run" s'utiliser pour lancer un conteneur à partir de son image. Une fois la commande exécutée, le conteneur s'arrête. Exemple qui liste le dossier courant :
<sourcesyntaxhighlight lang=bash>
docker run maven:latest ls
</syntaxhighlight>
</source>
<sourcesyntaxhighlight lang=text>
bin
boot
Ligne 31 :
usr
var
</syntaxhighlight>
</source>
 
Pour rester connecté dedans, on utilise le mode interactif (-it) :
<sourcesyntaxhighlight lang=bash>
docker run -it redis
redis-cli
</syntaxhighlight>
</source>
 
Pour partager un dossier avec la machine hôte, on peut utiliser "-v" pour "volume", ou "--mount" si le conteneur a des services<ref>https://docs.docker.com/storage/volumes/</ref>. Exemple qui liste le dossier de la machine hôte partagé avec le conteneur :
<sourcesyntaxhighlight lang=bash>
docker run -it -v "/$(pwd)/":/usr/src/mymaven maven ls usr/src/mymaven
</syntaxhighlight>
</source>
 
== exec ==
Pour exécuter une commande dans un conteneur. Ex :
<sourcesyntaxhighlight lang=bash>
docker exec redis sh -c 'pwd'
</syntaxhighlight>
</source>
 
Fonctionne aussi avec un fichier :
<sourcesyntaxhighlight lang=bash>
docker exec redis script.sh
</syntaxhighlight>
</source>
 
=== Dans tous les conteneurs ===
Pour lancer une commande dans tous les conteneurs, il faut créer le fichier suivant<ref>https://gist.github.com/timhodson/ea11c76424e5b3f36c017d9d0ca7ad10</ref> :
<sourcesyntaxhighlight lang=bash>
for container in `docker ps -q`; do
docker inspect --format='{{.Name}}' $container;
docker exec -it $container $1;
done
</syntaxhighlight>
</source>
 
Ensuite le lancer avec la commande en paramètre :
<sourcesyntaxhighlight lang=bash>
./dockers.sh date
 
Ligne 72 :
/php7.4-fpm
Thu Mar 19 12:15:34 Europs 2020
</syntaxhighlight>
</source>
 
=== Rentrer dans un conteneur ===
Pour utiliser le conteneur, on peut rentrer dedans en utilisant le mode interactif :
<sourcesyntaxhighlight lang=bash>
docker exec -it redis bash
</syntaxhighlight>
</source>
 
== build ==
Pour lancer un conteneur à construire, il faut le faire depuis le dossier de son Dockerfile<ref>https://docs.docker.com/engine/reference/builder/</ref> :
<sourcesyntaxhighlight lang=bash>
docker build .
</syntaxhighlight>
</source>
 
== ps ==
Pour obtenir la liste des conteneurs lancés :
<sourcesyntaxhighlight lang=bash>
docker ps
</syntaxhighlight>
</source>
 
Pour tous les conteneurs :
<sourcesyntaxhighlight lang=bash>
docker ps -a
</syntaxhighlight>
</source>
 
Pour en supprimer un :
<sourcesyntaxhighlight lang=bash>
docker rm nom_du_coteneur
</syntaxhighlight>
</source>
 
== image ==
Pour toutes les images :
<sourcesyntaxhighlight lang=bash>
docker image ls
</syntaxhighlight>
</source>
 
Pour en supprimer une :
<sourcesyntaxhighlight lang=bash>
docker rmi nom_image
</syntaxhighlight>
</source>
 
== Références ==