docker container topコマンド

Dockerコンテナは最小限のコマンドしかインストールされていないことが多い。
そのためコンテナの中に入ったとしてもpsコマンドが無い場合も多く、プロセスの確認が面倒になる。

Dockerにはdocker container topコマンドがあり、コンテナの外からコンテナ内のプロセスを確認できる。

$ docker container top <コンテナ>

<コンテナ>の部分はコンテナ名かUIDを指定する。

コンテナ名の調べ方

コンテナ名はdocker psコマンドなどで調べる。

$ docker ps
CONTAINER ID   IMAGE                     COMMAND       CREATED       STATUS       PORTS     NAMES
d07988d90148   rockylinux/rockylinux:8   "/bin/bash"   2 hours ago   Up 2 hours             docker-rocky-rocky-1

上記の例ではdocker-rocky-rocky-1がコンテナ名、d07988d90148がUIDとなる。

実行例

以下の例ではdocker-rocky-rocky-1コンテナのプロセスを確認している。

$ docker container top docker-rocky-rocky-1
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                1272                1249                0                   08:04               ?                   00:00:00            /bin/bash

UIDを指定しても同じ結果が得られる。

$ docker container top d07988d90148
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                1272                1249                0                   08:04               ?                   00:00:00            /bin/bash