DockerでZFSストレージドライバを使う

参考: Use the ZFS storage driver | Docker Documentation

/var/lib/docker/var/lib/docker.bak にリネームして /var/lib/docker を作り直しパーミションを合わせます。

sudo mv /var/lib/docker{,.bak}
sudo mkdir /var/lib/docker
sudo 711 /var/lib/docker

以下では tank1 というボリュームが既にある想定で tank1/docker ボリュームを新規作成し /var/lib/docker にマウントポイントを設定します。

sudo zfs create tank1/docker
sudo zfs set mountpoint=/var/lib/docker tank1/docker

/var/lib/docker.bak の内容を /var/lib/docker にコピーします。

sudo tar cf - . -C /var/lib/docker.bak | sudo tar xf - -C /var/lib/docker

以下のコマンドを実行して /etc/docker/daemon.json を作成します。既にこのファイルがある場合は "storage-driver": "zfs", を適宜追加してください。

cat <<'EOF' | sudo tee /etc/docker/daemon.json > /dev/null
{
  "storage-driver": "zfs"
}
EOF

docker サービスを再起動します。

sudo systemctl restart docker

動作確認して問題なければ /var/lib/docker.bak を消します。

sudo rm -rf /var/lib/docker.bak