ฉันต้องการที่จะทำคำสั่ง ps ในภาชนะนักเทียบท่าที่ได้มาจากที่เก็บฮับอย่างเป็นทางการของเดเบียน:
$ docker run -ti debian:wheezy /bin/bash
root@51afd6b09af8:/# ps
bash: ps: command not found
ฉันต้องการที่จะทำคำสั่ง ps ในภาชนะนักเทียบท่าที่ได้มาจากที่เก็บฮับอย่างเป็นทางการของเดเบียน:
$ docker run -ti debian:wheezy /bin/bash
root@51afd6b09af8:/# ps
bash: ps: command not found
คำตอบ:
ps
ไม่ได้ติดตั้งในwheezy
อิมเมจพื้นฐาน ลองใช้จากในคอนเทนเนอร์:
RUN apt-get update && apt-get install -y procps
ps
อยู่ในภาพเสียงดัง:https://github.com/moby/moby/issues/447#issuecomment-36647268
ใช้นักเทียบท่าด้านบน
docker top <container ID>
ในกรณีที่คุณไม่สามารถติดตั้งแพ็กเกจ 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
ประการแรกเรียกใช้คำสั่งด้านล่าง:
apt-get update && apt-get install procps
จากนั้นเรียกใช้:
ps -ef
apt-get install -y procps
แทน