Encontre a versão certa da API do Docker Engine para sua versão do Docker em https://docs.docker.com/develop/sdk/#api-version-matrix . Nesses exemplos, eu estava testando a API v1.37 e conectando por meio de um soquete Unix.
Obtenha a lista de processos em execução.
curl -sSL --unix-socket /var/run/docker.sock "http:/v1.37/containers/{id}/top" | jq
Obtenha a lista de contêineres em execução, filtre por um nome de imagem e, em seguida, obtenha o endereço IP da ponte de rede.
curl -sSL
--unix-socket /var/run/docker.sock
"http:/v1.37/containers/json"
| jq -r '
.[] | select(.Image == "datadog/agent") | .NetworkSettings.Networks.bridge.IPAddress
'
;
Obtenha a lista de contêineres em execução, filtre por um nome de imagem e, em seguida, obtenha a lista de portas públicas que estão sendo expostas do contêiner.
curl -sSL
--unix-socket /var/run/docker.sock
"http:/v1.37/containers/json"
| jq -r '
.[] | select(.Image == "datadog/agent") | .Ports[] | select(.PublicPort) | .PublicPort
'
;
Obtenha a lista de contêineres em execução, filtre por um nome de imagem e, em seguida, obtenha o endereço IP da ponte de rede + portas públicas que estão abertas no contêiner.
curl -sSL
--unix-socket /var/run/docker.sock
"http:/v1.37/containers/json"
| jq -r '
.[] | select(.Image == "datadog/agent") | [
.NetworkSettings.Networks.bridge.IPAddress,
(.Ports[] | select(.PublicPort) | .PublicPort) | tostring
] | join(":")
'
;