【发布时间】:2021-03-22 20:53:47
【问题描述】:
我正在尝试使用 podman 作为 root 运行本地构建的容器。请注意,这纯粹是针对开发环境的,我知道以 root 身份运行容器是不好的。
即
sudo podman run -it <image>
但是,由于当前用户的图像存在于 ~/.local 下,因此 podman 无法看到找到它。
所以我尝试将 podman 指向用户容器存储区域
sudo podman run -it <image> --root /home/<username>/.local/share/containers/storage
这失败了
Error: error creating libpod runtime: database libpod temporary files directory (tmpdir) "/run/user/1000/libpod/tmp" does not match our libpod temporary files directory (tmpdir) "/var/run/libpod": database configuration mismatch
于是我又试了一次,
sudo podman run -it <image> \
--root /home/<username>/.local/share/containers/storage \
--tmpdir /run/user/1000/libpod/tmp \
--runroot /run/user/1000
这确实有效,但会导致留下只有 root 才能访问的文件。这意味着对非 sudo podman 的后续调用失败。
我的其他解决方法包括在运行之前将图像从用户传输到 root
podman save <image> | sudo podman load
sudo podman run <image>
【问题讨论】:
-
如果您想在用户之间共享相同的容器映像存储,只读容器映像存储:
additionalimagestores可能有用(请参阅redhat.com/sysadmin/image-stores-podman)。 -
@ErikSjölund 太棒了,谢谢,似乎有效。
标签: podman