如何列出所有用户的无根容器?

How to list rootless containers of ALL the users?

是否有显示服务器中存在的容器和图像的命令?这意味着对于 root 用户和所有用户(无根容器)?

su -
podman container ps --all

仅显示 root 的容器。

我希望 root 能够看到所有其他容器。

我建议使用纯 su 而不是 sudo machinectl:

su myuser -P -l -c "podman ps -a"

Reason: I got high cpu/mem usage from /usr/lib/accountsservice/accounts-daemon by doing the 'machinectl'-trick above.

我 运行 它在 tmux 监控脚本中(每 10 秒),应该不会太难。如有疑问,请检查 tail -f /var/log/syslog 是否存在以下重复短语:

Feb 24 11:06:55 2wa systemd[1]: Started Shell for User git.
Feb 24 11:06:55 2wa systemd[1]: Started Session 391 of user git.
Feb 24 11:06:56 2wa systemd[4716]: Started podman-38205.scope.
Feb 24 11:06:56 2wa systemd[1]: session-391.scope: Succeeded.
Feb 24 11:06:56 2wa systemd[4716]: podman-38205.scope: Succeeded.
Feb 24 11:06:56 2wa systemd[1]: container-shell@7.service: Succeeded.

可能原因:loginctl enable linger(经常与podman结合使用)在延迟时间内重复调用machinectl时造成重叠shell-sessions

我认为没有任何命令可以列出所有用户的所有容器,但您可以列出任意用户的所有容器:

sudo systemd-run --machine=username@ --quiet --user --collect --pipe --wait podman container ps --all

(上述命令需要最新版本的 systemd)。

您也可以使用 machinectl

$ sudo -i
# machinectl shell username@
Connected to the local host. Press ^] three times within 1s to exit session.
$ podman container ps --all

两个可执行文件都属于 systemd 项目。

$ rpm -qf /usr/bin/systemd-run
systemd-249.9-1.fc35.x86_64
$ rpm -qf /usr/bin/machinectl 
systemd-container-249.9-1.fc35.x86_64
$ cat /etc/fedora-release 
Fedora release 35 (Thirty Five)

至于为什么不用su

引用 当我通过 sudo 或 su 登录用户时,为什么我不能 运行 无根 Podman 容器? 来自 https://www.redhat.com/sysadmin/sudo-rootless-podman

另见 https://github.com/containers/podman/blob/main/troubleshooting.md#30-podman-run-fails-with-erro0000-xdg_runtime_dir-directory-runuser0-is-not-owned-by-the-current-user-or-error-error-creating-tmpdir-mkdir-runuser1000-permission-denied