Vous n'êtes pas seul dans ce monde si pendant longtemps vous n'êtes pas satisfait de ce à quoi ressemble la sortie standard de
docker ps
. Bien qu'il existe diverses solutions de contournement à ce sujet
(voir la fin de l'article) , une fois qu'un passionné devait faire «autre chose» ... et cela s'est produit en 2019. Son nom est
docker-pretty-ps .
L'idée de l'auteur est très banale: sortie horizontale et couleurs pour plus de clarté.

Et en tant que public, les utilitaires
sont appelés «développeurs plutôt que des ingénieurs DevOps ou SRE inconditionnels».
Les possibilités
Avec l'apparence, tout devrait être clair sur la photo. Que permet l'utilitaire dans le sens des fonctions? Par défaut, tous les conteneurs en cours d'exécution sont affichés, mais cela, bien sûr, n'est pas limité aux possibilités - docker-pretty-ps le prend en charge:
- sortie de tous les conteneurs (y compris arrêtés);
- recherchez les conteneurs par modèle:
docker-pretty-ps my,try
affichera les conteneurs au nom desquels *my*
et *try*
(par exemple, docker-registry
et mysql-redmine
); - plusieurs options de tri;
- champs de sortie personnalisables pour chaque conteneur (disponibles:
container_id
, created
, ports
, image_id
, status
, command
); - mode de sortie
slim
compact (supprime tous les champs énumérés ci-dessus, ne laissant que les noms des conteneurs):

- données de sortie au format JSON.
L'installation
Le code du projet est écrit en Python et les auteurs notent séparément que les packages Python tiers ne sont pas utilisés, donc pour démarrer, il suffit d'avoir Docker et Python dans le système, ce qui est vrai pour beaucoup.
L'installation se fait via pip:
pip install docker-pretty-ps
... ou un simple montage:
git clone https://github.com/politeauthority/docker-pretty-ps.git cd docker-pretty-ps python3 setup.py build python3 setup.py install
Tout - vous pouvez utiliser:
$ 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: …
Autres solutions de contournement
Malgré le support répandu sur Reddit, cet utilitaire ne convient certainement pas à tout le monde. En particulier, si vous avez de nombreux conteneurs (des dizaines ou plus), même l'utilisation du mode
slim
ne sera pas toujours pratique. Et puis l'une des solutions de contournement bien connues peut être plus utile.
docker ps --format
L'option de formatage pour
docker ps
n'est pas seulement une solution de contournement, mais en un sens la meilleure solution également. Il ne nécessite rien de plus en termes d'installation dans le système.
L'argument
--format
est accepté par de nombreuses commandes Docker, permettant (via
go-template ) de personnaliser leur sortie pour elles-mêmes. Pour l'équipe
docker ps
, son support est apparu il y a longtemps (dans la sortie de Docker 1.8 d'août 2015). Voici un exemple de son utilisation:
[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 …
(NB: dans l'exemple ci-dessus, les noms complets des conteneurs et des images ont été recadrés manuellement pour une meilleure visualisation.)Des détails sur l'utilisation de
--format
peuvent être trouvés, par exemple, dans
cet article , et des exemples de fonctions disponibles peuvent être trouvés dans la
documentation Docker .
ctop
Une façon encore plus populaire consiste peut-être à utiliser l'utilitaire
ctop , qui offre une interface similaire au
top
classique, mais pour les conteneurs Docker:

Son lancement pratique dans la console peut être réduit à un tel alias:
alias ctop='docker run --rm -ti -v /var/run/docker.sock:/var/run/docker.sock quay.io/vektorlab/ctop:latest'
En plus de cela, bien sûr, il existe d'autres interfaces - plus avancées dans leurs capacités -, mais leur description dépasse le cadre de l'article. Qu'utilisez-vous?
PS
Lisez aussi dans notre blog: