我在Ubuntu 16.04上使用Docker CE,ZFS作为Docker的存储.安装程序非常标准:
>有一个zpool有多个磁盘
>在zpool上,有一个带有mountpoint / var / lib / docker的zfs文件系统.
> Docker发现文件系统是ZFS,并自动使用它
一切都在大部分时间都有效.但是,偶尔我的VM启动时,zpool无法挂载.我相信(虽然我不是100%肯定)这是因为Docker服务在安装ZFS文件系统之前启动,实际上我看到在根FS上创建了一个/ var / lib / docker文件夹.
在安装所有ZFS文件系统之前,如何确保Docker服务无法启动?
我能够通过做两件事来解决这个问题.请注意,单独一个就足够了.
原文链接:https://www.f2er.com/ubuntu/348327.html首先,通过在文件/etc/docker/daemon.json中编写{“storage-driver”:“zfs”},明确告诉Docker使用ZFS作为文件系统. (如果磁盘中存在该文件,则只需添加存储驱动程序密钥)
其次,在/etc/systemd/system/docker-wait-zfs.service文件中创建以下systemd单元:
[Unit] Description=Wait for ZFS before starting Docker requiredBy=docker.service Before=docker.service Requires=zfs.target After=zfs.target [Service] Type=oneshot ExecStart=/bin/true RemainAfterExit=yes [Install] WantedBy=multi-user.target
然后执行:
systemctl enable docker-wait-zfs.service