No está solo en este mundo si durante mucho tiempo no está satisfecho con la apariencia estándar de
docker ps
. Aunque hay varias soluciones alternativas sobre este tema
(vea el final del artículo) , una vez que un entusiasta tuvo que hacer "otra cosa" ... y esto sucedió en el próximo 2019. Su nombre es
docker-pretty-ps .
La idea del autor es muy banal: salida horizontal y colores para mayor claridad.

Y como audiencia, las utilidades
se denominan "desarrolladores en lugar de ingenieros DevOps o SRE".
Las posibilidades
Con la apariencia, todo debe quedar claro en la imagen. ¿Qué permite la utilidad en el sentido de las funciones? De manera predeterminada, se muestran todos los contenedores en ejecución, pero esto, por supuesto, no se limita a las posibilidades: docker-pretty-ps lo admite:
- salida de todos los contenedores (incluidos los detenidos);
- busque contenedores por plantilla:
docker-pretty-ps my,try
mostrará los contenedores en cuyo nombre se encuentran *my*
y *try*
(por ejemplo, docker-registry
y mysql-redmine
); - varias opciones de clasificación;
- campos de salida personalizables para cada contenedor (disponible:
container_id
, created
, ports
, image_id
, status
, command
); - modo de salida compacto y
slim
(elimina todos los campos enumerados anteriormente, dejando solo los nombres de los contenedores):

- datos de salida en formato JSON.
Instalación
El código del proyecto está escrito en Python y los autores notan por separado que no se usan paquetes de Python de terceros, por lo que para comenzar es suficiente tener Docker y Python en el sistema, lo cual es cierto para muchos.
La instalación se realiza a través de pip:
pip install docker-pretty-ps
... o un ensamblaje simple:
git clone https://github.com/politeauthority/docker-pretty-ps.git cd docker-pretty-ps python3 setup.py build python3 setup.py install
Todo, puedes 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: …
Otras soluciones
A pesar del soporte generalizado en Reddit, esta utilidad ciertamente no es adecuada para todos. En particular, si tiene muchos contenedores (decenas o más), incluso usar el modo
slim
no siempre será conveniente. Y luego una de las soluciones conocidas puede ser más útil.
docker ps --format
La opción de formato para
docker ps
no es solo una solución, sino que, en cierto sentido, también es la mejor solución. No requiere nada extra en términos de instalación en el sistema.
El argumento
--format
es aceptado por muchos comandos de Docker, lo que permite (a través de
go-template ) personalizar su salida por sí mismos. Para el equipo
docker ps
, su soporte apareció hace mucho tiempo (en el lanzamiento de Docker 1.8 de agosto de 2015). Aquí hay un ejemplo de su 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 …
(Nota: en el ejemplo anterior, los nombres completos de contenedores e imágenes se recortaron manualmente para una mejor visualización).Se pueden encontrar detalles sobre cómo trabajar con
--format
, por ejemplo, en
este artículo , y se pueden encontrar ejemplos de funciones disponibles en la
documentación de Docker .
ctop
Quizás una forma aún más popular es usar la utilidad
ctop , que ofrece una interfaz similar a la
top
clásica, pero para los contenedores Docker:

Su conveniente lanzamiento en la consola se puede reducir a dicho alias:
alias ctop='docker run --rm -ti -v /var/run/docker.sock:/var/run/docker.sock quay.io/vektorlab/ctop:latest'
Además de esto, por supuesto, hay otras interfaces más avanzadas en sus capacidades, pero su descripción está más allá del alcance del artículo. Que usas
PS
Lea también en nuestro blog: