Consultar a API Docker Engine para qualquer contêiner em execução

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(":")

'

;