他のユーザーのコンテナを含むシステムで実行されているすべてのPodmanコンテナを一覧表示する方法はありますか?
rootとしてログインしても、podman ps -a
ユーザーのすべてのコンテナが一覧表示されますが、マシン上のすべてのコンテナを表示したいと思います。
答え1
私が知っている限り、Podman自体にはこれを行う能力はありません。コンテナの作成を調停するために中央デーモンを持つことは、Podman哲学に違反しています!
ただし、コンテナは依然としてクールな名前空間であるため、lsns
( "list-namespaces")ツールを使用してすべてのコンテナのリストを取得できます。
lsns
多くの名前空間!次のマウントネームスペースに制限してみましょう。
lsns -t mnt
はるかに良いです!
これでプロセスのプロセスIDを取得できます作られた名前空間 - これはPodmanです!
lsns -t mnt -n -o PPID
それでは、これらすべてを総合してみましょう。
#!/usr/bin/env zsh
ppids=$(lsns -t mnt -n -o PPID)
uids=""
for ppid in ${ppids}; do
uids="${uids}\n$(stat -c '%u' /proc/$ppid)"
done
uids=$(echo "$uids" | sort -u)
for uid in uids; do
## su(do) as that user: podman ps -a
done