我不明白
的区别$> docker top lamp-test
PID USER COMMAND
31263 root {supervisord} /usr/bin/python /usr/bin/supervisord -n
31696 root {mysqld_safe} /bin/sh /usr/bin/mysqld_safe
31697 root apache2 -D FOREGROUND
...
和
$> docker exec lamp-test ps
PID TTY TIME CMD
1 ? 00:00:00 supervisord
433 ? 00:00:00 mysqld_safe
434 ? 00:00:00 apache2
831 ? 00:00:00 ps
所以,问题是,为什么PID不同?我会说ps
的输出是命名空间,但如果是真的,top
显示的是什么!
答案 0 :(得分:4)
docker exec lamp-test ps
在泊坞广告容器中显示pids
。
docker top lamp-test
显示主机系统pids
。
您可以看到容器进程,但不能杀死它们。这"有缺陷"隔离实际上有一些很大的好处,比如能够从主机上运行的单个monitor进程监视所有容器内运行的进程。
答案 1 :(得分:0)
我不认为您应该为此担心。您不能在主机环境中杀死PID,但可以在容器中杀死它。
docker exec <CONTAINER NAME> ps
记住PID
docker exec <CONTAINER NAME> kill <PID>