Maison >Opération et maintenance >Docker >Quels sont les moyens d'accéder au conteneur Docker ?

Quels sont les moyens d'accéder au conteneur Docker ?

王林
王林avant
2020-11-16 16:27:313728parcourir

Quels sont les moyens d'accéder au conteneur Docker ?

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.

Quels sont les moyens daccéder au conteneur Docker ?

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.

Quels sont les moyens daccéder au conteneur Docker ?

Vous pouvez utiliser docker inspect pour afficher les détails du conteneur.

$ sudo docker inspect 44fc0f0582d9

Quels sont les moyens daccéder au conteneur Docker ?

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

Quels sont les moyens daccéder au conteneur Docker ?

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

Quels sont les moyens daccéder au conteneur Docker ?

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer