gpt4 book ai didi

docker - zfs:文件系统有依赖的克隆

转载 作者:行者123 更新时间:2023-12-04 18:48:55 24 4
gpt4 key购买 nike

我正在运行 Ubuntu 20.04 并在我的系统驱动器上使用 zfs。
我正在尝试删除 docker 容器,但出现此错误:

glen $ docker rm c3250e315b06
Error response from daemon: container c3250e315b0631cc7fee17ab0c7f649a3995ea17e969705117e064a045b3775e: driver "zfs" failed to remove root filesystem: exit status 1: "/usr/sbin/zfs fs destroy -r rpool/ROOT/ubuntu_bl0u7i/var/lib/120f50d109cf1c84f20db9e6402fef9a4bd91fa8b94f1848a874539663bbdc40" => cannot destroy 'rpool/ROOT/ubuntu_bl0u7i/var/lib/120f50d109cf1c84f20db9e6402fef9a4bd91fa8b94f1848a874539663bbdc40': filesystem has dependent clones
use '-R' to destroy the following datasets:
rpool/ROOT/ubuntu_bl0u7i/var/lib/38ff67538bf4b2ccfef54cfeb55847cf6da6bee70a6bf2e5b063ab0e5820c0fd
rpool/ROOT/ubuntu_bl0u7i/var/lib/120f50d109cf1c84f20db9e6402fef9a4bd91fa8b94f1848a874539663bbdc40-init
我不知道从哪里开始出错。
任何人都可以帮忙吗?
编辑:
我从这条评论中修复了它: https://github.com/moby/moby/issues/36967#issuecomment-676698563
但它摧毁了我所有的容器

最佳答案

我不知道如何通过 Docker 来做,但 ZFS 告诉你文件系统 rpool/ROOT/ubuntu_bl0u7i/var/lib/120f50d...bbdc40从该文件系统上的快照创建了几个克隆。为了争论,假设只有一个,克隆的文件系统被称为 clone1 , 它是由 snapshot1 创建的在 rpool/...bbdc40文件系统。所以你的层次结构是这样的:

rpool/...bbdc40 -> rpool/...bbdc40@snapshot1 -> clone1
问题是 clone1仍在引用来自 snapshot1 的数据,因此您无法删除快照,这会阻止您删除原始文件系统。
但是,ZFS 允许您通过使用 zfs promote 更改“父”文件系统的身份。命令,它允许您将层次结构更改为:
clone1 -> clone1@snapshot1 -> rpool/...bbdc40
现在没有人依赖 rpool/...bbdc40 中的数据了(因为快照已移动到新提升的父级 clone1 上),因此您可以将其删除。
(也就是说,Docker 可能假设它可以完全控制其文件系统的状态,所以如果你到处运行随机 ZFS 命令,它可能会让 Docker 感到悲伤和困惑。使用风险自负。)

关于docker - zfs:文件系统有依赖的克隆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66925115/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com