La commande ps ne fonctionne pas dans le conteneur Docker


208

Je veux faire une commande ps dans un conteneur Docker dérivé du référentiel Debian Docker Hub:

$ docker run -ti debian:wheezy /bin/bash
root@51afd6b09af8:/# ps
bash: ps: command not found

Réponses:


366

psn'est pas installé dans l' wheezyimage de base . Essayez ceci depuis le conteneur:

RUN apt-get update && apt-get install -y procps

8
Si vous obtenez cette erreur "La commande '/ bin / sh -c apt-get install procps' a renvoyé un code différent de zéro: 1", utilisez-le à la apt-get install -y procpsplace.
fwc

Voici l'URL qui a discuté en 2014 de ne pas inclure psdans l'image https://github.com/moby/moby/issues/447#issuecomment-36647268
sifflante

RUN apt-get update && apt-get install -y procps && rm -rf / var / lib / apt / lists / *
Zhuo YING

Où faut-il l'ajouter? Je pense que dans le fichier .yml lors de la création de votre image docker?
Yaro


6

Si vous ne pouvez pas installer le package procps (ne disposez pas des autorisations appropriées), vous pouvez utiliser le répertoire / proc.

Les premiers répertoires (appelés numéros) sont des PID de vos processus. Dans les répertoires, vous pouvez trouver des informations supplémentaires utiles pour déchiffrer quel processus est connecté à chaque PID. Par exemple, vous pouvez utiliser la commande cat pour afficher le fichier "cmdline" pour vérifier quel processus est connecté au PID.

$ ls /proc
1 10 11 ...

$ ls -1 /proc/22
attr
autogroup
auxv
cgroup
clear_refs
cmdline
...

$ cat /proc/22/cmdline 
/bin/sh

Bien que ce ne soit pas aussi pratique, cela semble la réponse la plus appropriée.
Jairus Martin

1

Tout d'abord, exécutez la commande ci-dessous:

apt-get update && apt-get install procps

puis exécutez:

ps -ef
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.