Il existe de nombreuses façons d'entrer dans un conteneur Docker. Nous nous concentrerons ici sur plusieurs méthodes couramment utilisées pour entrer dans un conteneur Docker.
(Partage vidéo d'apprentissage : Tutoriel vidéo php)
Les façons les plus courantes d'accéder à un conteneur Docker sont les suivantes :
Utilisez docker attach
Utilisez SSH
Utilisez nsenter
Utilisez exec
1. Utilisez docker attach pour entrer dans le conteneur Docker
Docker fournit la commande attach pour entrer dans le conteneur Docker.
Ensuite, nous créons un conteneur Docker démon, puis utilisons la commande docker attach pour entrer dans le conteneur.
$ sudo docker run -itd ubuntu:14.04 /bin/bash
Ensuite, nous utilisons docker ps pour afficher les informations sur le conteneur, puis utilisons docker attach pour entrer dans le conteneur
$ sudo docker attach 44fc0f0582d9
Vous pouvez voir que nous sommes entrés dans le conteneur.
Mais il y a un problème avec l'utilisation de cette commande. Lorsque plusieurs fenêtres utilisent cette commande pour entrer dans le conteneur en même temps, toutes les fenêtres seront affichées simultanément. Si une fenêtre est bloquée, les autres fenêtres ne pourront plus fonctionner.
Pour cette raison, la commande docker attach n'est pas adaptée aux environnements de production. Vous pouvez utiliser cette commande lors du développement de vos propres applications.
2. Utilisez SSH pour entrer dans le conteneur Docker
Après avoir exclu l'utilisation de la commande docker attach pour entrer dans le conteneur dans l'environnement de production, je pense que la première chose à laquelle tout le monde pense est ssh. Installez le serveur SSH dans l'image (ou le conteneur), afin que plusieurs personnes puissent entrer dans le conteneur sans interférer les unes avec les autres. Je pense que tout le monde le fait dans l'environnement de production actuel (sans utiliser Docker). Cependant, il n'est pas recommandé d'utiliser ssh pour accéder au conteneur Docker après l'avoir utilisé.
3. Utilisez nsenter pour entrer dans le conteneur Docker
Lorsque les deux méthodes ci-dessus ne conviennent pas, il existe une méthode plus pratique, qui consiste à utiliser nsenter pour entrer dans le conteneur Docker.
Après avoir compris ce qu'est nsenter, le système installera par défaut le nsenter dont nous avons besoin dans l'hôte
S'il n'est pas installé, suivez simplement les étapes ci-dessous pour l'installer (notez qu'il est l'hôte et non le conteneur ou Mirror)
La commande d'installation spécifique est la suivante :
$ wget https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz $ tar -xzvf util-linux-2.24.tar.gz $ cd util-linux-2.24/ $ ./configure --without-ncurses $ make nsenter $ sudo cp nsenter /usr/local/bin
Après avoir installé nsenter, vous pouvez vérifier l'utilisation de cette commande.
nsenter peut accéder à l'espace de noms d'un autre processus. Ainsi, pour nous connecter à un conteneur, nous devons également obtenir le PID du premier processus du conteneur. Vous pouvez utiliser la commande docker inspect pour obtenir le PID. La commande
docker inspect est utilisée comme suit :
$ sudo docker inspect --help
La commande inspect peut afficher des informations sur une image ou un conteneur de manière hiérarchique. Par exemple, nous avons actuellement un conteneur en cours d’exécution.
Vous pouvez utiliser docker inspect pour afficher les détails du conteneur.
$ sudo docker inspect 44fc0f0582d9
Comme il y a beaucoup d'informations, seule une partie d'entre elles est capturée ici pour être affichée. Si vous souhaitez afficher le PID du premier processus du conteneur, vous pouvez utiliser la méthode suivante
$ sudo docker inspect -f {{.State.Pid}} 44fc0f0582d9
Après avoir obtenu le PID du processus, nous pouvons utiliser le nsenter commande pour accéder au conteneur.
$ sudo nsenter --target 3326 --mount --uts --ipc --net --pid $ sudo nsenter --target 3326 --mount --uts --ipc --net --pid
Le 3326 est le PID du procédé qui vient d'être obtenu.
4. Utilisez docker exec pour entrer dans le conteneur Docker
En plus des méthodes ci-dessus, docker fournit également une nouvelle commande exec après la version 1.3.X pour entrer dans le conteneur. relativement plus simple. Jetons un coup d'œil à l'utilisation de cette commande :
$ sudo docker exec --help
Ensuite, nous utilisons cette commande pour entrer dans un conteneur déjà en cours d'exécution
$ sudo docker ps $ sudo docker exec -it 775c7c9ee1e1 /bin/bash
Recommandations associées. : Tutoriel Docker
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!