docker-pretty-ps - enfin un ps docker lisible

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:

Source: https://habr.com/ru/post/fr436896/


All Articles