Você não está sozinho neste mundo se por um longo tempo não estiver satisfeito com a aparência da saída padrão do
docker ps
. Embora existam várias soluções alternativas sobre esse assunto
(consulte o final do artigo) , uma vez que um entusiasta teve que fazer “outra coisa” ... e isso aconteceu no próximo 2019. O nome dele é
docker-pretty-ps .
A ideia do autor é muito banal: saída horizontal e cores para maior clareza.

E, como público, os utilitários
são chamados de "desenvolvedores, e não engenheiros de DevOps ou SRE".
As possibilidades
Com a aparência, tudo deve ficar claro a partir da imagem. O que o utilitário permite no sentido de funções? Por padrão, todos os contêineres em execução são exibidos, mas isso, obviamente, não se limita às possibilidades - o docker-pretty-ps suporta:
- saída de todos os contêineres (inclusive parados);
- pesquise contêineres por modelo:
docker-pretty-ps my,try
exibirá os contêineres nos quais *my*
e *try*
(por exemplo, docker-registry
e mysql-redmine
); - várias opções de classificação;
- campos de saída personalizáveis para cada contêiner (disponível:
container_id
, created
, ports
, image_id
, status
, command
); - modo de saída compacto e
slim
(remove todos os campos listados acima, deixando apenas os nomes dos contêineres):

- dados de saída no formato JSON.
Instalação
O código do projeto é escrito em Python e os autores observam separadamente que pacotes Python de terceiros não são usados; portanto, para iniciar, basta ter Docker e Python no sistema, o que é verdade para muitos.
A instalação é feita através do pip:
pip install docker-pretty-ps
... ou uma montagem simples:
git clone https://github.com/politeauthority/docker-pretty-ps.git cd docker-pretty-ps python3 setup.py build python3 setup.py install
Tudo - você pode usar:
$ docker-pretty-ps -h usage: docker-pretty-ps [-h] [-a] [-s] [-i INCLUDE] [-o [ORDER]] [-r] [-j] [-v] [search] positional arguments: search Phrase to search containers, comma separate multiples. optional arguments: …
Outras soluções alternativas
Apesar do amplo suporte no Reddit, esse utilitário certamente não é adequado para todos. Em particular, se você tiver muitos contêineres (dezenas ou mais), mesmo usando o modo
slim
nem sempre será conveniente. E, em seguida, uma das soluções conhecidas pode ser mais útil.
docker ps --format
A opção de formatação para o
docker ps
não é apenas uma solução alternativa, mas, de certa forma, a melhor solução também. Não requer nada extra em termos de instalação no sistema.
O argumento
--format
é aceito por muitos comandos do Docker, permitindo (via
go-template ) personalizar sua saída para eles mesmos. Para a equipe do
docker ps
, seu suporte apareceu há muito tempo (no lançamento do Docker 1.8 de agosto de 2015). Aqui está um exemplo de seu uso:
[flant] d.shurupov@kube-node-test ~ $ sudo docker ps --format 'table {{.Names}}\t{{.Image}}' NAMES IMAGE k8s_fluentd_fluentd-jmzjd_loghouse… flant/loghouse-fluentd… k8s_cert-manager_cert-manager-… quay.io/jetstack/cert-manager-controller… k8s_prometheus-config-reloader_… 597141b113d9 k8s_prometheus_prometheus-main-… cc866859f8df k8s_POD_prometheus-main-0_kube-… k8s.gcr.io/pause-amd64:3.1 …
(Observação: no exemplo acima, os nomes completos dos contêineres e imagens foram cortados manualmente para melhor visualização.)Detalhes sobre como trabalhar com
--format
podem ser encontrados, por exemplo,
neste artigo , e exemplos de funções disponíveis na
documentação do
Docker .
ctop
Talvez uma maneira ainda mais popular seja usar o utilitário
ctop , que oferece uma interface semelhante à parte
top
clássica, mas para contêineres do Docker:

Seu lançamento conveniente no console pode ser reduzido a um apelido:
alias ctop='docker run --rm -ti -v /var/run/docker.sock:/var/run/docker.sock quay.io/vektorlab/ctop:latest'
Além disso, é claro, existem outras interfaces - mais avançadas em seus recursos -, mas sua descrição está além do escopo do artigo. O que você usa?
PS
Leia também em nosso blog: