psコマンドがDockerコンテナーで機能しない


208

Debian公式のDockerハブリポジトリから派生したDockerコンテナーでpsコマンドを実行したい:

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

回答:


366

psベースwheezyイメージにインストールされていません。コンテナ内からこれを試してください:

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

8
このエラーが発生した場合、「コマンド '/ bin / sh -c apt-get install procps'がゼロ以外のコード:1を返しました」をapt-get install -y procps代わりに使用してください。
fwc

pswheezy画像に含まれない2014年に議論されたURLは次のhttps://github.com/moby/moby/issues/447#issuecomment-36647268
とおりです。– Truthadjustr

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

どこに追加すればよいですか?Dockerイメージを作成するときに.ymlファイルで考える?
Yaro


6

procpsパッケージをインストールできない場合(適切な権限がない場合)は、/ procディレクトリを使用できます。

最初のいくつかのディレクトリ(番号が付けられている)は、プロセスのPIDです。ディレクトリ内には、どのプロセスが各PIDに接続されているかを解読するのに役立つ追加情報があります。たとえば、catコマンドを使用して「cmdline」ファイルを表示し、PIDに接続されているプロセスを確認できます。

$ ls /proc
1 10 11 ...

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

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

それほど便利ではありませんが、これはより適切な答えのようです。
ヤイルスマーティン

1

まず、以下のコマンドを実行します。

apt-get update && apt-get install procps

次に実行します:

ps -ef
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.