Tar

tar 上的 Podman 錯誤,使用者命名空間中可用的 UID 或 GID 可能不足

  • February 3, 2022

當我跑步時podman run,我遇到了一個特別奇怪的錯誤,

❯ podman run -ti --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:latest
✔ docker.io/rancher/rancher:latest
Trying to pull docker.io/rancher/rancher:latest...
Getting image source signatures
[... blob copying...]
Writing manifest to image destination
Storing signatures
 Error processing tar file(exit status 1): potentially insufficient UIDs or GIDs available in user namespace (requested 630384594:600260513 for /usr/bin/etcdctl): Check /etc/subuid and /etc/subgid: lchown /usr/bin/etcdctl: invalid argument
Error: Error committing the finished image: error adding layer with blob "sha256:b4b03dbaa949daab471f94bcfd68cbe21c1147e8ec2acfe3f46f1520db48baeb": Error processing tar file(exit status 1): potentially insufficient UIDs or GIDs available in user namespace (requested 630384594:600260513 for /usr/bin/etcdctl): Check /etc/subuid and /etc/subgid: lchown /usr/bin/etcdctl: invalid argument

*“使用者命名空間中可用的 UID 或 GID 可能不足”*是什麼意思,我該如何解決這個問題?

為了解決這個問題,我不得不執行--storage-opt ignore_chown_errors=true這個忽略 chmod 錯誤並強制你的容器只支持一個使用者。您可以在“為什麼無根 Podman 無法拉取我的圖像?”中了解這一點。. 請注意,這是一個選項podman,而不是podman run。因此使用它看起來像這樣,

podman --storage-opt ignore_chown_errors=true run [....]

在我的情況下,因為我沒有核心 overlayfs 驅動程序,所以我需要使用 FUSE 版本(與 一起安裝 sudo apt install fuse-overlayfs),

podman --storage-opt mount_program=/usr/bin/fuse-overlayfs --storage-opt ignore_chown_errors=true run [....]

引用自:https://unix.stackexchange.com/questions/689175