我在 RHEL 8 VM 上安装了 150GB /docker 分区,并且以 root 身份以及具有 sudo 的本地用户身份运行了此命令:
export TMPDIR=/docker
让 Podman 更改其默认 tmpdir。但是,在导入 54GB .tar 时,我们遇到了以下错误。我缺少什么配置设置?
$ podman import dockerfile.tar
Getting image source signatures
Copying blob b45265b317a7 done
Error: writing blob: adding layer with blob "sha256:b45265b317a7897670ff015b177bac7b9d5037b3cfb490d3567da959c7e2cf71": Error processing tar file(exit status 1): write /a65be6ac39ddadfec332b73d772c49d5f1b4fffbe7a3a419d00fd58fcb4bb757/layer.tar: no space left on device
以下是我在此虚拟机上的分区:
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 84K 3.9G 1% /dev/shm
tmpfs 3.9G 51M 3.8G 2% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/rhel_rhel86--svr-root 38G 7.2G 31G 20% /
/dev/sda2 495M 276M 220M 56% /boot
/dev/mapper/rhel_rhel86--svr-var 33G 1.4G 32G 5% /var
/dev/mapper/rhel_rhel86--svr-tmp 4.7G 66M 4.6G 2% /tmp
/dev/mapper/rhel_rhel86--svr-home 43G 1.6G 42G 4% /home
/dev/mapper/rhel_rhel86--svr-var_log 4.7G 104M 4.6G 3% /var/log
/dev/sdb 147G 56G 84G 40% /docker
/dev/mapper/rhel_rhel86--svr-var_log_audit 9.4G 168M 9.2G 2% /var/log/audit
/dev/mapper/rhel_rhel86--svr-var_tmp 1.9G 47M 1.9G 3% /var/tmp
/dev/sda1 500M 5.9M 494M 2% /boot/efi
tmpfs 785M 8.0K 785M 1% /run/user/42
tmpfs 785M 0 785M 0% /run/user/1000
这是 /etc/containers/storage.conf 的一部分
# Default Storage Driver, Must be set for proper operation.
driver = "overlay"
# Temporary storage location
runroot = "/docker"
# Primary Read/Write location of container storage
# When changing the graphroot location on an SELINUX system, you must
# ensure the labeling matches the default locations labels with the
# following commands:
# semanage fcontext -a -e /var/lib/containers/storage /NEWSTORAGEPATH
# restorecon -R -v /NEWSTORAGEPATH
graphroot = "/docker"
该虚拟机正在运行 SELinux,因此我运行了两个命令并重新启动:
semanage fcontext -a -e /var/lib/containers/storage /docker
restorecon -R -v /docker
我能够使用 Podman 成功导入另外两个大约 800MB 的 .tar 文件,所以我知道 Podman 运行正常。有人知道为什么即使 tmpdir 设置为 /docker,我的空间仍然不足吗?谢谢!
答案1
您的命令输出有答案。它尝试写入的文件是“/a65be6ac39ddadfec332b73d772c49d5f1b4fffbe7a3a419d00fd58fcb4bb757/layer.tar”
podman 命令正在尝试将一个 54GB 的文件写入 / 分区,该分区只有 38GB,如 df -h 命令所示,还有 31GB 可用。
即使您有 /docker 作为 tmpdir 并且它有足够的空间,/ 分区也没有足够的空间。要么增加 / 分区的大小,要么想办法将文件写入 /docker,因为 tmpdir 命令没有这样做,您在 storage.conf 文件中的配置设置也没有这样做