Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Welche Möglichkeiten gibt es, den Docker-Container zu betreten?

Welche Möglichkeiten gibt es, den Docker-Container zu betreten?

王林
王林nach vorne
2020-11-16 16:27:313687Durchsuche

Welche Möglichkeiten gibt es, den Docker-Container zu betreten?

Es gibt viele Möglichkeiten, einen Docker-Container zu betreten. Hier konzentrieren wir uns auf einige häufig verwendete Methoden zum Eintritt in einen Docker-Container.

(Lernvideo-Sharing: php-Video-Tutorial)

Die gebräuchlichsten Möglichkeiten, den Docker-Container zu betreten, sind wie folgt:

  • Verwenden Sie Docker Attach

  • Verwenden Sie SSH

  • Verwenden Sie nsenter

  • Verwenden Sie exec

1. Verwenden Sie Docker Attach, um auf den Docker-Container zuzugreifen.

Docker stellt den Attach-Befehl bereit, um auf den Docker-Container zuzugreifen.

Als nächstes erstellen wir einen Daemon-Docker-Container und verwenden dann den Docker-Attach-Befehl, um den Container aufzurufen.

$ sudo docker run -itd ubuntu:14.04 /bin/bash

Dann verwenden wir Docker PS, um die Containerinformationen anzuzeigen, und verwenden dann Docker Attach, um den Container einzugeben.

$ sudo docker attach 44fc0f0582d9

Sie können sehen, dass wir den Container eingegeben haben.

 Aber es gibt ein Problem bei der Verwendung dieses Befehls. Wenn mehrere Fenster diesen Befehl verwenden, um gleichzeitig in den Container zu gelangen, werden alle Fenster gleichzeitig angezeigt. Wenn ein Fenster blockiert ist, können andere Fenster nicht mehr bedient werden.

Aus diesem Grund ist der Docker-Attach-Befehl nicht für Produktionsumgebungen geeignet. Sie können diesen Befehl bei der Entwicklung Ihrer eigenen Anwendungen verwenden.

2. Verwenden Sie SSH, um den Docker-Container aufzurufen.

Nachdem ich die Verwendung des Docker-Attach-Befehls zum Aufrufen des Containers in der Produktionsumgebung ausgeschlossen habe, denke ich, dass das erste, woran jeder denkt, SSH ist. Installieren Sie den SSH-Server im Image (oder Container), damit mehrere Personen den Container betreten können, ohne sich gegenseitig zu stören. Ich glaube, dass dies jeder in der aktuellen Produktionsumgebung tut (ohne Docker zu verwenden). Es wird jedoch nicht empfohlen, nach der Verwendung SSH zum Aufrufen des Docker-Containers zu verwenden.

3. Verwenden Sie Nsenter, um den Docker-Container aufzurufen.

Wenn die beiden oben genannten Methoden nicht geeignet sind, gibt es eine bequemere Methode, nämlich die Verwendung von Nsenter, um den Docker-Container aufzurufen.

Nachdem das System verstanden hat, was Nsenter ist, installiert es den von uns benötigten Nsenter standardmäßig auf dem Host.

Wenn er nicht installiert ist, befolgen Sie einfach die folgenden Schritte, um ihn zu installieren (beachten Sie, dass es sich um den Host und nicht um den Container handelt). Spiegel)

Spezifische Installationsbefehle wie folgt:

$ 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

Nach der Installation von nsenter können Sie die Verwendung dieses Befehls überprüfen.

Welche Möglichkeiten gibt es, den Docker-Container zu betreten?

nsenter kann auf den Namespace eines anderen Prozesses zugreifen. Um eine Verbindung zu einem Container herzustellen, müssen wir also auch die PID des ersten Prozesses des Containers abrufen. Sie können den Befehl docker inspect verwenden, um die PID abzurufen. Der Befehl

Docker Inspect wird wie folgt verwendet: Der Befehl

$ sudo docker inspect --help

Inspect kann die Informationen eines Bildes oder Containers hierarchisch anzeigen. Beispielsweise haben wir derzeit einen laufenden Container.

Welche Möglichkeiten gibt es, den Docker-Container zu betreten?

Sie können Docker Inspect verwenden, um die Details des Containers anzuzeigen.

$ sudo docker inspect 44fc0f0582d9

Welche Möglichkeiten gibt es, den Docker-Container zu betreten?

Es gibt viele Informationen, daher wird hier nur ein Teil zur Anzeige erfasst. Wenn Sie die erste PID des Containers anzeigen möchten, können Sie die folgende Methode verwenden

$ sudo docker inspect -f {{.State.Pid}} 44fc0f0582d9

Welche Möglichkeiten gibt es, den Docker-Container zu betreten?

Nachdem wir die PID des Prozesses erhalten haben, können wir mit dem Befehl nsenter auf den Container zugreifen.

$ sudo nsenter --target 3326 --mount --uts --ipc --net --pid  
$ sudo nsenter --target 3326 --mount --uts --ipc --net --pid

Der 3326 ist die PID des gerade erhaltenen Prozesses.

4. Verwenden Sie docker exec, um den Docker-Container aufzurufen. Zusätzlich zu den oben genannten Methoden bietet Docker nach Version 1.3 auch einen Blick auf die Verwendung dieses Befehls:

$ sudo docker exec --help

Welche Möglichkeiten gibt es, den Docker-Container zu betreten? Mit diesem Befehl geben wir einen bereits laufenden Container ein

$ sudo docker ps  
$ sudo docker exec -it 775c7c9ee1e1 /bin/bash

Verwandte Empfehlungen:

Docker-Tutorial

Das obige ist der detaillierte Inhalt vonWelche Möglichkeiten gibt es, den Docker-Container zu betreten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen