Docker 上的 ZFS 存储

ZFS storage on Docker

我想在 Ubuntu(16.04) docker 容器上试用 ZFS。关注了以下https://docs.docker.com/engine/userguide/storagedriver/zfs-driver/

> lsmod | grep zfs
zfs                  2813952  5
zunicode              331776  1 zfs
zcommon                57344  1 zfs
znvpair                90112  2 zfs,zcommon
spl                   102400  3 zfs,zcommon,znvpair
zavl                   16384  1 zfs

列出 ZFS 挂载

>sudo zfs list
NAME                  USED  AVAIL  REFER  MOUNTPOINT
zpool-docker          261K   976M  53.5K  /zpool-docker
zpool-docker/docker   120K   976M   120K  /var/lib/docker

开始后docker

> sudo docker info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 1.12.0
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: zfs
 Dirs: 0
 ...

想知道为什么我仍然得到 **Storage Driver: aufs & Root Dir: /var/lib/docker/aufs" 代替 zfs?

另外,如何将“/zpool-docker”映射到 Ubuntu 容器镜像中?

假设您有:

  • 一个 ZFS 池(我们称之为 data
  • 安装在 /var/lib/docker 上的 ZFS 数据集(使用以下命令创建:zfs create -o mountpoint=/var/lib/docker data/docker

然后:

停止您的 docker 守护程序(例如 systemctl stop docker.service

创建文件 /etc/docker/daemon.json 或修改它以包含 "storage-driver" 设置为 zfs 的行:

{
...
        "storage-driver": "zfs"
...
}

重新启动您的 docker 守护程序。

docker info 现在应该显示:

Storage Driver: zfs
Zpool: data
Zpool Health: ONLINE
Parent Dataset: data/docker