在 docker rootless 模式下阻止 zfs 存储驱动程序

在 docker rootless 模式下阻止 zfs 存储驱动程序

我正在尝试使用无根 docker,但在拉取映像时,docker 尝试使用 zfs 作为存储驱动程序。我可以确认docker info显示了 zfs 驱动程序。我没有打算在任何地方配置它。我的操作系统没有默认为 zfs(btrfs 是根、引导等)。我的主目录位于已挂载的 zfs 中。

说明docker 中的 zfs解释了如何使用 daemon.json 设置存储驱动程序。但是,对我来说它不存在,这是意料之中的,但我在系统中没有看到可以这样做的等效配置。~/.docker/config.json 中没有关于存储驱动程序的任何信息。

我的主目录 (和无根 docker 目录) 位于已挂载的 zfs 位置,是否足以强制将其作为存储驱动程序?有没有办法让无根 docker 使用不同的存储驱动程序,也许可以通过将我的无根安装指向不是 zfs 支持目录的另一个位置?

答案1

我确认移动 ~/.local/share/docker 的位置足以停止使用 zfs 存储驱动程序。我将其直接设为 /var/docker_rootless 的软链接,一切正常。甚至docker info现在报告使用 overlay2 存储驱动程序。

解决的具体步骤说明:

  1. 首先停止docker服务。
  • systemctl --user stop docker.service
  1. 还使 /var/docker_rootless 由运行 rootless docker 的用户拥有。
  • sudo mkdir /var/mynewdir; sudo chown $(whoami):$(whoami) /var/mynewdir
  1. 移动了原始的docker文件夹
  • mv ~/.local/share/docker ~/.local/share/docker.bak
  1. 创建链接
  • ln -s /var/mynewdir ~/.local/share/docker
  1. 将旧文件夹内容复制到新目录。
  • rsync -A ~/.local/share/docker.bak/ ~/.local/share/docker

相关内容