2015-06-04 25 views
9

vorrei recuperare il porto mappato a un contenitore con finestra mobile ispezionare, ho trovato qualcosa di simile:Docker ispezionare formato recuperare porta mappatura

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

uscita:

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

Ma io' Mi piacerebbe avere un risultato come questo:

1234/tcp:49159 

E 'possibile?

risposta

5

Vedi anche la mia risposta How to get ENV variable when doing Docker Inspect Credo che si può adattare e arrivare direttamente ciò che si vuole

+1

Ho usato docker inspect --format '{{(index (index .NetworkSettings.Ports "8000/tcp") 0) .HostPort}}' 87c Dato che dà direttamente il risultato che voglio, Grazie Un sacco. – izissise

+1

Per trovare le porte EXPOSE e elencarle in modo pulito, puoi usare 'docker inspect --format = '{{range $ p, $ conf: = .Config.ExposedPorts}} {{$ p}} {{end} } 'containerid' che ho trovato [qui] (https://github.com/docker/docker/issues/6313#issuecomment-45781046). –

11

Il comando docker port può essere più utile; si produce un output simile a questo:

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

Grande I didn Conosco docker port – izissise

3

È possibile utilizzare indice nel modello:

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

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

Problemi correlati