他のユーザーのコンテナを一覧表示しますか?

他のユーザーのコンテナを一覧表示しますか?

他のユーザーのコンテナを含むシステムで実行されているすべての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

関連情報