2015-07-17 4 views
5

Ich habe einen Container, den ich erstellt habe, aber ich kann mich nicht an den genauen docker run Befehl erinnern, den ich verwendet habe, um es zu starten. Gibt es einen Weg, der abgerufen werden kann?Erhalten docker run Befehl für Container

Dies ist nicht dasselbe wie See full command of running/stopped container in Docker Was ich wissen möchte, ist der vollständige docker Befehl, der den Container hervorbrachte, nicht der Befehl innerhalb des Containers.

+0

Es ist immer 'docker run ', nicht wahr? –

+1

Ich denke, dass es unwahrscheinlich ist - docker Client verwendet REST API und Docker Client-Befehle nicht immer die API-Aufrufe entsprechen - so ist es unmöglich für Server den ursprünglichen Befehl zu erraten und zu speichern. –

+0

@ThomasUhrig was ist mit Dingen wie Port-Mappings, Links, etc. –

Antwort

7

Sie können die meisten dieser Informationen durch Betrachten der Ausgabe von docker inspect ableiten.

Zum Beispiel können Sie den im Container gestarteten Befehl anhand des Schlüssels Config.Cmd ermitteln. Wenn ich laufen:

$ docker run -v /tmp/data:/data --name sleep -it --rm alpine sleep 600 

kann ich später laufen:

$ docker inspect --format '{{.Config.Cmd}}' sleep 

Und erhalten:

{[sleep 600]} 

In ähnlicher Weise wird die Ausgabe von docker inspect auch Informationen über Docker Volumen im Behälter verwendet werden, umfassen :

$ docker inspect --format '{{.Volumes}}' sleep 
map[/data:/tmp/data] 

Sie können natürlich einfach docker inspect ohne --format ausführen, was Ihnen einen großen (mehr als 100 Zeilen umfassenden) JSON-Ausgabeabschnitt mit allen verfügbaren Schlüsseln bietet, der Informationen zu Portzuordnungen, Netzwerkkonfiguration und mehr enthält.

+2

Upvote for Beispiel mit Alpine Linux: D –

Verwandte Themen