다른 사용자의 컨테이너를 포함하여 시스템에서 실행 중인 모든 Podman 컨테이너를 나열하는 방법이 있습니까?
루트로 로그인했는데도 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