我在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服务无法启动?
我能够通过做两件事来解决这个问题.请注意,单独一个就足够了.
首先,通过在文件/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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。