docker - 无法注册层:处理 tar 文件时出错(退出状态 1)设备上没有剩余空间

docker - 无法注册层:处理 tar 文件时出错(退出状态 1)设备上没有剩余空间

我在曼扎罗

我不断得到:

failed to register layer: Error processing tar file(exit status 1): write /usr/lib/x86_64-linux-gnu/libvlccore.so.9.0.0: no space left on device

尽管下载

docker pull kdeneon/all

这是的输出df -H

Filesystem      Size  Used Avail Use% Mounted on
dev             2.6G     0  2.6G   0% /dev
run             2.6G  930k  2.6G   1% /run
/dev/dm-0        16G   11G  4.8G  69% /
tmpfs           2.6G   39M  2.6G   2% /dev/shm
tmpfs           2.6G     0  2.6G   0% /sys/fs/cgroup
tmpfs           2.6G   48M  2.6G   2% /tmp
/dev/dm-1        18G  631M   17G   4% /home
tmpfs           514M  4.1k  514M   1% /run/user/1000

我什至将图像目录从/var/lib/docker/image符号链接到/home/newbie/docker/image。因为/home只有4%用法。

ls -l /var/lib/docker/image
lrwxrwxrwx 1 root root   26 Mar  9 07:32 image -> /home/newbie/docker/image/

这没有效果。

我还可以做些什么 ?为什么会出现这种情况?

答案1

解决这个问题的正确方法是将docker数据目录移动到其他有足够空间的位置。就我而言,这是我的主分区。

为此,我必须创建一个daemon.json文件/etc/docker并向其中添加以下行:

{
    "data-root": "/home/newbie/docker_data"
}

然后重新启动 docker 服务,如果您正在起诉 systemd,则应该是:

systemctl restart docker

答案2

我在没有 Docker Desktop 的 Mac 计算机上遇到了同样的错误。移动 docker 数据目录对我来说不起作用。

这就是我使用 minikube 的效果。

minikube stop && minikube delete // this is required
minikube start --memory=16384 --cpus=8 --disk-size='80000mb'
eval $(minikube docker-env)

然后再试docker pull...一次。

相关内容