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
Yves Nicolas
la source

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
user2105103
la source
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
14

utiliser le débardeur

docker top <container ID>
es cologne
la source
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
Vedran Vidovic
la source
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
harun ugur
la source