2015-06-04 6 views
9

Ich möchte die Port abzurufen auf einen Behälter abgebildet mit Docker untersuchen, fand ich etwas wie folgt aus:Docker inspizieren Format abrufen Port-Mapping

docker inspect --format=" {{ .NetworkSettings.Ports }} " containerid 

Ausgang:

map[1234/tcp:[map[HostIp:0.0.0.0 HostPort:49159]] 3306/tcp:<nil> 4444/tcp:<nil> 4567/tcp:<nil> 4568/tcp:<nil>] 

Aber ich d möchte einen Ausgang wie folgt haben:

1234/tcp:49159 

Ist es möglich?

Antwort

5

Siehe auch meine Antwort How to get ENV variable when doing Docker Inspect Ich denke, man kann direkt anpassen und bekommen, was Sie wollen

+1

Ich habe Docker inspect --format '{{(Index (Index .NetworkSettings.Ports "8000/tcp") 0) .HostPort}}' 87c Da es direkt das Ergebnis, das ich will, Danke, wissen viel. – izissise

+1

Um EXPOSE-Ports zu finden und diese sauber aufzulisten, können Sie 'docker inspect-format = '{{$ p $, $ conf: = .Config.ExposedPorts}} {{$ p}} {{end} } 'containerid' welches ich [hier] gefunden habe (https://github.com/docker/docker/issues/6313#issuecomment-45781046). –

11

Der Befehl docker port kann nützlicher sein; es erzeugt eine Ausgabe wie folgt aus:

$ docker port 0a7b4df54966 
443/tcp -> 0.0.0.0:4430 
80/tcp -> 0.0.0.0:8888 
+0

Große I didn nicht über Docker Port – izissise

3

Sie Index in Ihrer Vorlage verwenden können:

--format '1234/tcp:{{ (index (index .NetworkSettings.Ports "1234/tcp") 0).HostPort }}' 
+0

Konkret, '--format '{{(index (index .NetworkSettings.Ports" 1234/tcp ") 0) .HostPort}}' – Andy

Verwandte Themen