Como visualizar o comando de inicialização de containers Docker em execução

Visualizando comandos de containers Docker em execução

Existem várias formas de verificar qual comando foi utilizdao para iniciar um container Docker que já está em execução. A seguir, apresento os principais métodos disponíveis.

Utilizando o comando docker ps

O comando docker ps exibe os containers que estão atualmente em execução. Para visualizar informações detalhadas sobre o comando utilizado, você pode utilizar flags adicionais.

Para ver o comando completo sem truncation:

docker ps -a --no-trunc | grep nome_do_container

A flag --no-trunc impede que o Docker corte a exibição do comando, mostrando a instrução completa utilizada na inicialização do container.

Utilizando o comando docker inspect

O comando docker inspect fornece informações detalhadas sobre um container específico em formato JSON. Todas as configurações e parâmetros do container podem ser extraídos desse arquivo JSON.

Sintaxe básica:

docker inspect <nome_ou_id_do_container>

Exemplo prático

[root@servidor ~]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                                                  NAMES
547880f43cf1   mysql:8.0.31   "docker-entrypoint.s…"   15 minutos atrás  Up 15 minutos  33060/tcp, 0.0.0.0:3301->3306/tcp, :::3301->3306/tcp   mysql-8.0.31
e02f22dc442c   mysql:5.7      "docker-entrypoint.s…"   25 horas atrás    Up 18 minutos  0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql

[root@servidor ~]# docker ps -a --no-trunc | grep 547880f43cf1
547880f43cf176d2a826ae26f9f04bbe637ca56ec5d92df25a78d24ec23ed232   mysql:8.0.31   "docker-entrypoint.sh mysqld"   15 minutos atrás  Up 15 minutos   33060/tcp, 0.0.0.0:3301->3306/tcp, :::3301->3306/tcp   mysql-8.0.31

[root@servidor ~]# docker inspect 547880f43cf1

O comando docker inspect retorna um JSON completo contendo todas as informações do container, incluindo:

  • Path: O executável principal do container
  • Args: Os argumentos passados para o executável
  • Config: Configurações de ambiente, variáveis, portas expostas
  • Mounts: Volumes montados no container
  • HostConfig: Configurações de rede, binds, políticas de reinício
  • NetworkSettings: Configurações de rede e IP

Extraindo campos específicos

O Docker permite utilizar a flag --format para extrair campos específicos do JSON retornado pelo inspect. Essa funcionalidade utiliza a sintaxe de templates do Go.

Exemplos de extração de campos:

docker inspect --format='{{.NetworkSettings.Networks.bridge.IPAddress}}' <container>
docker inspect --format='{{.Mounts}}' <container>
docker inspect --format='{{.HostConfig.Binds}}' <container>
docker inspect --format='{{.HostConfig.PortBindings}}' <container>

Exemplo de uso prático

[root@servidor ~]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                                                  NAMES
547880f43cf1   mysql:8.0.31   "docker-entrypoint.s…"   18 minutos atrás  Up 18 minutos  33060/tcp, 0.0.0.0:3301->3306/tcp, :::3301->3306/tcp   mysql-8.0.31
e02f22dc442c   mysql:5.7      "docker-entrypoint.s…"   25 horas atrás    Up 22 minutos  0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql

[root@servidor ~]# docker inspect --format='{{.Mounts}}' 547880f43cf1
[{bind  /mydata/mysql-8.0.31/log /var/log/mysql   true rprivate} {bind  /mydata/mysql-8.0.31/data /var/lib/mysql   true rprivate}]

[root@servidor ~]# docker inspect --format='{{.NetworkSettings.Networks.bridge.IPAddress}}' 547880f43cf1
172.17.0.2

[root@servidor ~]# docker inspect --format='{{.HostConfig.Binds}}' 547880f43cf1
[/mydata/mysql-8.0.31/log:/var/log/mysql /mydata/mysql-8.0.31/data:/var/lib/mysql]

[root@servidor ~]# docker inspect --format='{{.HostConfig.PortBindings}}' 547880f43cf1
map[3306/tcp:[{ 3301}]]

Esses comandos são extremamente úteis para automatização e criação de scripts, permitindo extrair informações específicas dos containers sem precisar analisra manualmente todo o JSON retornado.

Tags: Docker Container docker-inspect docker-ps devops

Publicado em 7-25 23:03