Heim > Artikel > Betrieb und Instandhaltung > 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.
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.
Sie können Docker Inspect verwenden, um die Details des Containers anzuzeigen.
$ sudo docker inspect 44fc0f0582d9
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
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
Mit diesem Befehl geben wir einen bereits laufenden Container ein
$ sudo docker ps $ sudo docker exec -it 775c7c9ee1e1 /bin/bash
Verwandte Empfehlungen:
Docker-TutorialDas 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!