Docker : l'essentiel en 7 minutes
Table des matières:
La connexion à un conteneur Docker en cours d'exécution est utile lorsque vous souhaitez voir ce qui se passe à l'intérieur du conteneur. Si le conteneur Docker ne fonctionne pas comme prévu, vous pouvez l'attacher au conteneur ou obtenir un shell sur le conteneur et exécuter des commandes telles que
ps
ou
top
. Vous pouvez également entrer dans le conteneur, installer de nouveaux packages et créer une nouvelle image Docker à partir de celui-ci.
Dans ce tutoriel, nous expliquerons comment se connecter au processus principal d'exécution du conteneur et comment obtenir un shell dans un conteneur en cours d'exécution.
Attacher à un conteneur
Bien qu'il soit possible d'exécuter plusieurs processus dans un conteneur, la plupart des conteneurs Docker n'exécutent qu'un seul processus. La commande exécutée lors du démarrage d'un conteneur est spécifiée à l'aide de l'
ENTRYPOINT
et / ou
RUN
.
La commande
docker attach
vous permet de connecter votre terminal au conteneur en cours d'exécution. Ceci est utile lorsque vous souhaitez voir ce qui est écrit dans la sortie standard en temps réel ou pour contrôler le processus de manière interactive.
Pour mieux comprendre le fonctionnement de la commande
attach
, exécutons un nouveau conteneur Nginx détaché à l'aide de l'image Nginx officielle.
docker container run --name my_nginx -d -p 8080:80 nginx
L'option
-p 8080:80
indique à Docker de lier le port 8080 du conteneur au port 80 sur la machine hôte.
Répertoriez les conteneurs pour vous assurer que le conteneur «my_nginx» est en cours d'exécution:
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8e1c4974a8d8 nginx "nginx -g 'daemon of…" 3 minutes ago Up 2 seconds 0.0.0.0:8080->80/tcp my_nginx
Attachez-le au conteneur en utilisant l'ID ou le nom du conteneur:
docker container attach my_nginx
La commande par défaut de l'image nginx qui est exécutée lorsque vous exécutez le conteneur est définie sur
CMD
. Lorsque vous exécutez la commande
attach
votre terminal se
attach
au processus
nginx
.
Ouvrez
127.0.0.1:8080
dans votre navigateur et vous pouvez regarder la sortie du processus nginx en temps réel.
192.168.33.1 - - "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36" "-" 192.168.33.1 - - "GET /favicon.ico HTTP/1.1" 404 555 "http://192.168.33.71:8080/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36" "-"
Pour accéder aux journaux du conteneur, vous devriez préférer utiliser la commande
docker logs
.
Pour détacher du conteneur sans l'arrêter, utilisez la combinaison de
CTRL-p
CTRL-q
. Appuyez sur
CTRL-c
arrêter le conteneur.
Si le processus en cours auquel vous vous attachez accepte une entrée, vous pouvez lui envoyer des instructions.
Obtenez un shell dans un conteneur
La commande
docker exec
vous permet d'exécuter des commandes à l'intérieur d'un conteneur en cours d'exécution.
Pour voir comment la commande
exec
fonctionne et comment elle peut être utilisée pour entrer dans le shell du conteneur, commencez par démarrer un nouveau conteneur. Nous utiliserons l'image MySQL officielle:
docker container run --name my_mysql -d mysql
Cela va créer un conteneur nommé "my_mysql".
Pour exécuter une commande à l'intérieur du conteneur, exécutez la commande suivante:
docker container exec -it my_mysql ls /var
L'option
-i
signifie interactif et
-t
indique à Docker d'allouer un pseudo périphérique TTY. La commande
ls
répertorie tous les fichiers et répertoires dans le répertoire
/var
du conteneur:
backups cache lib local lock log mail opt run spool tmp
Pour obtenir un shell dans le conteneur, c'est-à-dire pour entrer à l'intérieur du conteneur, démarrez une nouvelle session shell en exécutant le binaire shell. Vous pouvez utiliser
sh
,
bash
ou tout autre shell inclus dans l'image.
La commande ci-dessous créera une nouvelle session Bash à l'intérieur du conteneur:
docker container exec -it my_mysql /bin/bash
Votre invite de commande va changer, indiquant que vous travaillez maintenant sur le shell du conteneur.
À partir de là, vous pouvez exécuter des commandes de la même manière que vous le feriez sur n'importe quel autre serveur Linux. Par exemple, pour obtenir une liste des variables d'environnement actuelles, tapez
env
:
env
La sortie ressemblera à ceci:
HOSTNAME=e0214d97e0fe MYSQL_ROOT_PASSWORD=my-secret-pw PWD=/ HOME=/root MYSQL_MAJOR=8.0 GOSU_VERSION=1.7 MYSQL_VERSION=8.0.17-1debian9 TERM=xterm SHLVL=1 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin _=/usr/bin/env
Conclusion
Les commandes
docker exec
et
docker attach
vous permettent de vous connecter à un conteneur en cours d'exécution. Pour obtenir un shell interactif dans un conteneur, utilisez la commande
exec
pour démarrer une nouvelle session shell. La commande
attach
attache votre terminal à un conteneur en cours d'exécution.
Comment connecter les trous de sécurité dans votre navigateur

Pour protéger votre historique de navigation, essayez la fonction de navigation privée gratuite dans Safai ou Distrust. dessus pour Firefox. Pour un anonymat complet, essayez l'Anonymizer payant ou le Tor gratuit.
Comment connecter Cortana au compte santé Microsoft

Découvrez comment connecter votre compte Microsoft Health à Cortana dans Windows 10. Une fois connecté, Cortana affiche votre progrès de l`activité dans Microsoft Band.
Impossible de modifier les autorisations des objets et de recevoir Échec de l`énumération des objets dans le conteneur , Access est refusé erreur dans Windows 10 / 8.1, voir ce correctif.

Généralement dans