我已经修改了我的 synology DS918(DSM 6.2.2-24922 Update 4)以运行 docker-19.03.8。不幸的是,虽然主挂载/volume1
是 btrfs,并且 docker 支持btrfs
作为存储驱动程序,但它
需要专用的块存储设备,例如物理磁盘
Synology 默认在下面使用 LVM2(我认为):
root@nas1:~# docker info 2> /dev/null | grep -i root
Docker Root Dir: /volume1/@docker
root@nas1:~# mount | grep ' /volume1 '
/dev/mapper/vg1-volume_1 on /volume1 type btrfs (rw,relatime,synoacl,space_cache=v2,auto_reclaim_space,metadata_ratio=50,subvolid=257,subvol=/@syno)
我无法提取任何图像,原因是(traefik
作为示例,这是通用的):
root@nas1:~# docker pull traefik:v2.2
v2.2: Pulling from library/traefik
aad63a933944: Pull complete
f365f1b91ebb: Extracting [==================================================>] 694.1kB/694.1kB
dc367a6045f5: Download complete
ff697159d003: Download complete
failed to register layer: Failed to create btrfs snapshot: inappropriate ioctl for device
这表明根本问题出在 btrfs 快照/子卷上(尽管我不太了解如何使用或操作它们)。
问题:
能
docker
与 btrfs-on-lvm2 一起工作吗?我尝试过将其更改为"storage-driver":"devicemapper"
(和"overlay2"
),但没有成功 (dockerd 无法启动)。docker-ce 文档中没有其他建议使用其他机制。有没有办法让 Synology 安装
/volume1
在非 LVM2 分区上?它是镜像 (RAID-1) 8TB 驱动器,具有一些导出的共享。