Detaillierte Erklärung, wie man einen Docker-Container verlässt, ohne ihn zu schließen

Detaillierte Erklärung, wie man einen Docker-Container verlässt, ohne ihn zu schließen

Wenn Sie den Docker-Container nach dem Betreten des Containers verlassen, wechselt der Container in den Status „Beendet“. Wie verlassen Sie also den Container, ohne ihn herunterzufahren?

Wenn Sie normal beenden möchten, ohne den Container zu schließen, drücken Sie Strg+P+Q, um den Container zu verlassen. Dies ist sehr wichtig, bitte denken Sie daran!

Das folgende Beispiel verlässt den Container, ohne ihn zu schließen:

[root@localhost ~]# Docker-Anhang c600c4519fc8
[root@c600c4519fc8 /]# beenden
Ausfahrt
[root@localhost ~]# docker ps -a
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
c600c4519fc8 centos "/bin/bash" vor 3 Stunden Beendet (0) vor 1 Sekunde pensive_jackson
5a7a0d694651 busybox "sh" vor 20 Stunden Beendet (0) vor 20 Stunden hungry_vaughan
4b0296d18849 hallo-welt "/hallo" vor 46 Stunden Beendet (0) vor 46 Stunden hopeful_yonath
[root@localhost ~]# Docker startet pensive_jackson
nachdenklicher_jackson
[root@localhost ~]# Docker-Anhang c600c4519fc8

Strg + P + Q 

[root@c600c4519fc8 /]# Escape-Sequenz lesen
[root@localhost ~]# docker ps -a
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
c600c4519fc8 centos "/bin/bash" vor 3 Stunden Up 22 Sekunden pensive_jackson
5a7a0d694651 busybox "sh" vor 20 Stunden Beendet (0) vor 20 Stunden hungry_vaughan
4b0296d18849 hallo-welt "/hallo" vor 46 Stunden Beendet (0) vor 46 Stunden hopeful_yonath

Tatsächlich können wir es beim Starten des Containers konfigurieren und den Parameter -d hinzufügen, um den Container zu starten. Natürlich ist dieser Befehl auf das Starten eines neuen Containers beschränkt und es ist nicht möglich, einen geschlossenen Container zu starten.

Tipps 1

docker run -d: führt den Container im Hintergrund aus und gibt die Container-ID zurück

Das folgende Beispiel verwendet docker -d, um einen Container zu starten und zu beenden

[root@localhost ~]# docker run -i -t -d centos /bin/bash
8521b11d5d99535d4cb0080adc5a58a4dd018ecd0751d9945f7da7ab01bec330
[root@localhost ~]# docker ps -a
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
8521b11d5d99 centos "/bin/bash" vor 4 Sekunden Up 4 Sekunden eager_goldwasser
c600c4519fc8 centos "/bin/bash" vor 3 Stunden Beendet (0) vor 28 Sekunden pensive_jackson
5a7a0d694651 busybox "sh" vor 20 Stunden Beendet (0) vor 20 Stunden hungry_vaughan
4b0296d18849 hallo-welt "/hallo" vor 46 Stunden Beendet (0) vor 46 Stunden hopeful_yonath
[root@localhost ~]# Docker-Anhang 8
[root@8521b11d5d99 /]# uname -r
3.10.0-514.el7.x86_64
[root@8521b11d5d99 /]# beenden
Ausfahrt
[root@localhost ~]# docker ps -a
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
8521b11d5d99 centos "/bin/bash" vor 2 Minuten Beendet (0) vor 2 Sekunden eager_goldwasser
c600c4519fc8 centos "/bin/bash" vor 3 Stunden Beendet (0) vor 2 Minuten pensive_jackson
5a7a0d694651 busybox "sh" vor 20 Stunden Beendet (0) vor 20 Stunden hungry_vaughan
4b0296d18849 hallo-welt "/hallo" vor 46 Stunden Beendet (0) vor 46 Stunden hopeful_yonath

Hier stellen Sie möglicherweise fest, dass der Container nach dem Beenden mit dem Befehl -d immer noch tot ist. Praktische Freunde stellen möglicherweise fest, dass der Container auch nach dem Starten mit docker run -d tot ist.

Was wir hier verstehen müssen, ist der Betriebsmechanismus des Containers. Der Docker-Container läuft im Hintergrund und muss einen Vordergrundprozess haben. Hier lassen wir den Container ein Vordergrundprogramm laufen, damit der Container nach dem Start von -d überleben kann.

[root@localhost ~]# docker ps -a
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
c600c4519fc8 centos "/bin/bash" vor 3 Stunden Beendet (0) vor 4 Minuten pensive_jackson
5a7a0d694651 busybox "sh" vor 21 Stunden Beendet (0) vor 21 Stunden hungry_vaughan
4b0296d18849 hallo-welt "/hallo" vor 47 Stunden Beendet (0) vor 47 Stunden hopeful_yonath
[root@localhost ~]# docker run -d centos /bin/bash -c "nohup ping -i 1000 www.baidu.com"
8aa19c9604382bc019797ccda831ae1bcebd81d86380b6040d636e03000b440a
[root@localhost ~]# docker ps -a
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
8aa19c960438 centos "/bin/bash -c 'nohup..." vor 2 Sekunden Up 2 Sekunden adoring_wing
c600c4519fc8 centos "/bin/bash" vor 3 Stunden Beendet (0) vor 5 Minuten pensive_jackson
5a7a0d694651 busybox "sh" vor 21 Stunden Beendet (0) vor 21 Stunden hungry_vaughan
4b0296d18849 hallo-welt "/hallo" vor 47 Stunden Beendet (0) vor 47 Stunden hopeful_yonath

Ich verwende nohup, um einen Prozess im Hintergrund laufen zu lassen, der Baidu alle 1000 Sekunden anpingt. Sie können auch „while true; do echo hello world; sleep 1; done“ verwenden, um „Hallo Welt“ unendlich oft auszugeben.

Auch wenn im Hintergrund ein Prozess ausgeführt wird, wird der Container beendet, wenn Sie den Container betreten und „exit“ eingeben. Bitte beachten Sie dies.

Strg+P+Q ist meiner Meinung nach immer noch die beste Methode.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Einführung in Jenkins und wie man Jenkins mit Docker bereitstellt
  • Detaillierte Erläuterung zur Lösung des Problems, dass der Docker-Container nicht über IP auf den Hostcomputer zugreifen kann
  • So erstellen Sie einen Nginx-Server mit Docker
  • So konfigurieren Sie https für Nginx in Docker
  • Einführung in Docker-Container
  • Detaillierte Erläuterung der Anwendungsbereitstellungspraxis für Docker + Jenkins + Gitlab + Django
  • Docker-Installationstutorial: Erste Schritte (Anfängerausgabe)
  • Installieren Sie Docker offline, indem Sie RPM und zugehörige Abhängigkeiten mit Yum herunterladen.
  • Docker verwendet Busybox, um ein Basis-Image zu erstellen
  • Docker Detaillierte Abbildungen

<<:  MySQL ruft die aktuelle Datums- und Uhrzeitfunktion ab

>>:  Zwei Methoden zur Implementierung der Mysql-Remoteverbindungskonfiguration

Artikel empfehlen

So verwenden Sie Typescript zum Kapseln von lokalem Speicher

Inhaltsverzeichnis Vorwort Szenarien für die Verw...

Alibaba Cloud Centos7 Installation und Konfiguration von SVN

1. SVN-Server installieren yum installiere Subver...

3 Funktionen der toString-Methode in js

Inhaltsverzeichnis 1. Drei Funktionen der toStrin...

So verwenden Sie Port 80 in Tomcat unter Linux

Anwendungsszenario In vielen Fällen installieren ...

js zum Implementieren von Operationen zum Hinzufügen und Löschen von Tabellen

In diesem Artikelbeispiel wird der spezifische JS...

Detailliertes Beispiel zum Entfernen doppelter Daten in MySQL

Detailliertes Beispiel zum Entfernen doppelter Da...

Verwenden von System.Drawing.Common in Linux/Docker

Vorwort Nachdem das Projekt auf .net Core migrier...

So verwenden Sie die Vue-Timeline-Komponente

In diesem Artikelbeispiel wird der spezifische Im...

CocosCreator ScrollView-Optimierungsreihe: Frame-Laden

Inhaltsverzeichnis 1. Einleitung 2. Analyse des f...

Bootstrap 3.0 - Schaltflächenstil für Lernnotizen

In diesem Artikel wird hauptsächlich der Stil der...

So deklarieren Sie einen Cursor in MySQL

So deklarieren Sie einen Cursor in MySQL: 1. Vari...