我的 Kubernetes 测试集群出现了这个奇怪的错误。我正在运行 Kubernetes 1.7.0 和 dockerDocker version 1.12.6, build 78d1802
我有一个单独的卷,它已挂载为该卷/dockerdata
并与其建立符号链接/var/lib/docker
。我的系统卷和 dockerdata 卷上都有足够的可用空间(超过 50% 的可用空间)。我仍然收到来自 kubernetes 的 ImagePullBackOff 错误,详细错误如下:
Failed to pull image "<redacted>": rpc error: code = 2 desc = failed to register layer: ApplyLayer exit status 1 stdout: stderr: open /usr/share/man/es/man1/fakeroot-sysv.1.gz: no space left on device.
如果我通过删除陈旧的图像来手动清理,我可以解决这个问题,但据我所知,我不应该这样做 - 因为我的卷都没有接近满容量(我猜这也是为什么 Kubernetes GC 无法启动的原因)。
我猜我可能对 Docker 与本地磁盘的工作方式有些不明白,但我很困惑。任何指点都值得赞赏。
这里还有一些信息:符号链接信息:
file /var/lib/docker /var/lib/docker: symbolic link to /dockerdata
df Filesystem 1K-blocks Used Available Use% Mounted on udev 2014736 0 2014736 0% /dev tmpfs 404520 44628 359892 12% /run /dev/xvda1 20263528 4121240 16125904 21% / tmpfs 2022600 0 2022600 0% /dev/shm tmpfs 5120 0 5120 0% /run/lock tmpfs 2022600 0 2022600 0% /sys/fs/cgroup /dev/xvdb 51475068 18385324 30451920 38% /dockerdata tmpfs 404520 0 404520 0% /run/user/1000
lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.2 LTS Release: 16.04 Codename: xenial
答案1
您可以尝试以下操作:
ls -lah ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
然后尝试删除此文件,不会影响任何容器。