![Docker 迁移至外部 USB SSD 问题](https://linux22.com/image/1032509/Docker%20%E8%BF%81%E7%A7%BB%E8%87%B3%E5%A4%96%E9%83%A8%20USB%20SSD%20%E9%97%AE%E9%A2%98.png)
Ubuntu 20.04.5 LTS
Docker 版本 24.0.2
我正在尝试将 /var/lib/docker 目录重新定位到我的 USB SSD 闪存驱动器以节省内部存储的内存,但是,我遇到了困难。我尝试修改 docker 服务以设置不同的数据根目录,但是当我启动服务时,我收到错误,我认为这与重新定位目标是 USB 闪存驱动器有关。
我通过执行创建了现有docker文件的副本
sudo rsync -avxP /var/lib/docker/ /home/myuser/riva/docker/
其中 /home/myuser/riva 是我挂载的 USB 驱动器(myuser 是我的用户名),然后修改 docker.service 以将数据根目录设置为新位置
ExecStart=/usr/bin/dockerd --data-root /home/myuser/riva/docker -H fd:// --containerd=/run/containerd/containerd.sock
但是,docker 无法启动,出现以下错误
time="2024-03-13T02:21:33.996540964-07:00" level=info msg="Starting up"
time="2024-03-13T02:21:34.000771936-07:00" level=info msg="detected 127.0.0.53 nameserver, assuming systemd-resolved, so using resolv.conf: /run/systemd/resolve/resolv.conf"
time="2024-03-13T02:21:34.100456272-07:00" level=error msg="failed to mount overlay: invalid argument" storage-driver=overlay2
time="2024-03-13T02:21:34.100577936-07:00" level=error msg="[graphdriver] prior storage driver overlay2 failed: driver not supported"
failed to start daemon: error initializing graphdriver: driver not supported
为了测试目的,我尝试了相同的程序将其重新定位到内部存储上的另一个文件夹,并且效果很好,所以这证明问题与 SSD 闪存驱动器有关。当我执行“fdisk -l”时,结果报告为 ntfs,正如预期的那样。
/dev/sda1: LABEL="RIVA" UUID="18089E33089E103C" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="5fa27c32-117b-4223-9a76-6297b0fdc625"
有人可以帮忙吗?
谢谢
答案1
我解决了我的问题。问题是 storage-driver=overlay2 与 NTFS 文件系统不兼容。我将闪存驱动器重新格式化为 ext4,这解决了我的问题。我希望有人能从我的问题中受益。
需要注意的是,在格式化闪存驱动器之前,我更改了 storage-driver=fuse-overlayfs,但这在 NTFS 文件系统上也失败了。我还尝试了 VFS,docker 成功运行,但导致下载量过高。