私はドッカーとコンテナでいくつかのテストを行っていますが、疑問に思っていました:
ホストの観点から、 docker コンテナーに関連付けられているすべてのプロセスをその名前または ID で見つけるために使用できる方法はありますか。
結局のところ、コンテナーは仮想化されたプロセスのセットです。
私はドッカーとコンテナでいくつかのテストを行っていますが、疑問に思っていました:
ホストの観点から、 docker コンテナーに関連付けられているすべてのプロセスをその名前または ID で見つけるために使用できる方法はありますか。
結局のところ、コンテナーは仮想化されたプロセスのセットです。
Docker コンテナーで実行されるプロセスは、containerd-shim
(Docker v18.09.4 で)という名前のプロセスの子です。
containerd-shim
ます。pgrep containerd-shim
7105 7141 7248
親プロセス 7105 の子プロセスを見つけるには:
pgrep -P 7105
7127
最後に、次の方法でリストを取得できます。
for i in $(pgrep containerd-shim); do pgrep -P $i; done
7127 7166 7275
1行でbashスクリプトを使用して同様のソリューションを見つけました:
for i in $(docker container ls --format "{{.ID}}"); do docker inspect -f '{{.State.Pid}} {{.Name}}' $i; done
Docker stats "container id" リソースの消費量を pid または単に Docker ps とともに表示します。
おそらく、このチート シートが役立つ可能性があります。 http://theearlybirdtechnology.com/2017/08/12/docker-cheatsheet/