2016-09-23 3 views
13

ich einen Docker Behälter aus einem Bild mit folgendem Befehl starten:Wie starten Sie eine gestoppte Docker Behälter

$ docker run -d myimage /bin/bash -c "mycommand" 

Wenn "mycommand" beendet ist, wird der Behälter gestoppt (ich nehme an, es gestoppt ist), aber es ist nicht gelöscht, weil ich es mit diesem Befehl sehen kann:

$ docker ps -a 

gibt es eine Möglichkeit zu restart dieser Behälter mit den gleichen Parametern und halten Daten, die von mycommand?

+0

Erfüllt "volume" oder "mounting a host directory" Sie? Wie das erwähnte Dokument: https://docs.docker.com/engine/tutorials/dockervolumes/ –

Antwort

14

Ja, wenn der erste Befehl seine Ausführung beendet, stoppt der Container.

Sie können einen gestoppten Behälter beginnen:

docker start container_name

Wenn Sie die Ausgabe Ihres Befehls sehen wollen, dann sollten Sie -ai Optionen hinzufügen:

docker start -ai container_name

PS. Es gibt eine docker restart container_name, aber das wird verwendet, um einen laufenden Container neu zu starten - ich glaube, das ist nicht dein Fall.

1

Zuerst zeigt $ docker ps -a alle Container (die laufenden und die gestoppten) an, deshalb sehen Sie, dass Ihr gestoppter Container aufgelistet ist.

Zweitens können Sie leicht einen gestoppt Container starten durch:

$ docker start container_name 

Sobald der Behälter gestartet wurde, können Sie Ihren Befehl ausführen von:

$ docker exec -it container_name bash -c "mycommand" 

Das Material, das Sie in Ihrem Container erstellen bleibt solange in Ihrem Container, wie es existiert. Wenn Sie Daten behalten möchten, selbst wenn Ihr Container entfernt wird, können Sie volume verwenden.