Erwägen:
docker run -it centos /bin/bash
Ich drückte Ctrl+ D, um es zu verlassen.
Ich möchte diesen Container weiter ausführen, habe aber festgestellt, dass ich das nicht kann.
Die einzige Methode ist
docker commit `docker ps -q -l` my_image
docker run -it my_image /bin/bash
Habe ich recht? Gibt es eine bessere Methode? (Ich verwende Docker 0.8.0.)
Antworten:
Sie können einen vorhandenen Container nach dem Beenden neu starten und Ihre Änderungen sind noch vorhanden.
quelle
docker start `docker ps -q -l` && docker attach `docker ps -q -l`
docker start -i $(docker ps -q -l)
. ;-) Durch die Benennung kann besser gesteuert werden, welcher Container ausgewählt wird.-l
Holen Sie sich das letzte, ok ...`docker ps -q -l`
Neulinge ist das Bit eine Erweiterung. Es wird durch die ID des zuletzt erstellten Docker-Containers (-l) ersetzt. -q unterdrückt lediglich andere Informationen (neben der ID), die normalerweise von ausgegeben werden`docker ps`
. ---- Hinweis: Backtick ist kein Anführungszeichen, es hat eine ganz besondere Bedeutung. Alles, was Sie zwischen Backticks eingeben, wird von der Shell vor dem Hauptbefehl ausgewertet (ausgeführt) - unix.stackexchange.com/questions/27428/…Created...
von dem aus er nicht mit a gestartet werden kanndocker start ...
. Es kann jedoch mitdocker restart ...
-l
Erhält nur den "neuesten" Docker. Wenn Sie wie ich sind unddocker ps -a
mehr als eine Sache anzeigen, die Sie zum Starten benötigen, können Sie "alle" (-a) neu starten, indem Sie den obigen Befehl in änderndocker start `docker ps -q -a`
.-q
macht es nur "leise" (keine Ausgabeprotokollierung).Erläuterung:
docker start
Starten eines Containers (erfordert Name oder ID)-a
Anhängen an den-i
interaktiven Modus desdocker ps
Containers-q
Nur Container auflisten Nur Container-IDs-l
auflisten Nur zuletzt erstellten Container auflistenquelle
Verwenden:
Dadurch werden alle Container gestartet, die sich im verlassenen Zustand befinden.
Dadurch wird eine Verbindung zum jeweiligen Container hergestellt.
quelle
docker exec -it <container id> /bin/bash
(oder einfach nur schlagen).Wenn Sie dies in mehreren, leicht zu merkenden Befehlen tun möchten:
docker ps -a
docker start -i <name/id>
Das
-i
Flag weist den Docker an, sich an den Standard des Containers anzuhängen.Wenn der Container nicht mit einer interaktiven Shell gestartet wurde, zu der eine Verbindung hergestellt werden soll, müssen Sie dies tun, um eine Shell auszuführen:
Dies
/bin/sh
ist die Shell, die normalerweise mit alpinen Bildern erhältlich ist.quelle
Error response from daemon: Container <id> is not running
Wenn Sie genau einen Docker-Container mit einem bekannten Namen fortsetzen möchten:
quelle
docker start <name>
wobei <Name> der Name Ihres Containers ist. Zumindest mit Docker v19.03.8Folge diesen Schritten:
Führen Sie den folgenden Befehl aus, um festzustellen, ob alle Containerdienste ausgeführt und gestoppt wurden. Es wird die Option
-a
gegeben, um zu sehen, dass der Container ebenfalls stopptStarten Sie dann den Docker-Container entweder mit
container_id
oder mit Container-Tag-NamenSagen wir aus dem obigen Bild, Container-ID 4b161b302337 Der auszuführende
Befehl lautet also
Man kann überprüfen, ob der Container mit läuft
quelle
Wenn Sie einen benannten Container haben, kann dieser durch Ausführen gestartet werden
Dabei ist container_name der Name des Containers, der zum Zeitpunkt der Erstellung des Containers angegeben werden muss. Sie können durch
container_name
die Container-ID ersetzen, falls der Container nicht benannt ist. Die Container-ID kann durch Ausführen von:quelle
Diese Befehle funktionieren für jeden Container (nicht nur für die zuletzt beendeten). Diese Methode funktioniert auch nach dem Neustart Ihres Systems. Zu diesem Zweck verwenden diese Befehle "Container-ID".
Schritte:
Listen Sie alle Docker mit diesem Befehl auf und notieren Sie sich die Container-ID des Containers, den Sie neu starten möchten:
docker ps -a
Starten Sie Ihren Container mit der Container-ID:
docker start <container_id>
Bringen Sie Ihren Container an und lassen Sie ihn laufen:
docker attach <container_id>
HINWEIS: Funktioniert unter Linux
quelle
namentlich
oder nach Id
Dadurch wird der gestoppte Container neu gestartet. Verwenden Sie -i, um die STDIN des Containers anzuhängen. Anstelle von -i können Sie eine Verbindung zur Containersitzung herstellen (wenn Sie mit -it ausführen.)
quelle
Dadurch werden alle Container gestartet, die sich im Status "Beendet" befinden
quelle