Graphicdriver not supported when changing runtime directory and storage driver

I have newly installed docker on n Ubuntu 22.04 VM following the docs

After installation docker starts up alright. Then I point the runtime directory to an nfs mount (for space considerations) as suggested in the docs here and change the storage driver to fuse-overlay (as overlay2 does not work on nfs mounts) by creating a daemon.json:


{
    "data-root": "/mnt/docker",
    "storage-driver": "fuse-overlayfs"
}

Once I do this, docker doesn“t start anymore with a reference to a graphdriver issue:

Aug  7 13:59:24 docker dockerd[906]: time="2022-08-07T13:59:24.753875682Z" level=info msg="Starting up"
Aug  7 13:59:24 docker dockerd[906]: time="2022-08-07T13:59:24.755479782Z" level=info msg="detected 127.0.0.53 nameserver, assuming systemd-resolved, so using resolv.conf: /run/systemd/resolve/resolv.conf"
Aug  7 13:59:24 docker dockerd[906]: time="2022-08-07T13:59:24.764198842Z" level=info msg="parsed scheme: \"unix\"" module=grpc
Aug  7 13:59:24 docker dockerd[906]: time="2022-08-07T13:59:24.764231802Z" level=info msg="scheme \"unix\" not registered, fallback to default scheme" module=grpc
Aug  7 13:59:24 docker dockerd[906]: time="2022-08-07T13:59:24.764254572Z" level=info msg="ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/containerd.sock  <nil> 0 <nil>}] <nil> <nil>}" module=grpc
Aug  7 13:59:24 docker dockerd[906]: time="2022-08-07T13:59:24.764265512Z" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc
Aug  7 13:59:24 docker dockerd[906]: time="2022-08-07T13:59:24.765565912Z" level=info msg="parsed scheme: \"unix\"" module=grpc
Aug  7 13:59:24 docker dockerd[906]: time="2022-08-07T13:59:24.765586382Z" level=info msg="scheme \"unix\" not registered, fallback to default scheme" module=grpc
Aug  7 13:59:24 docker dockerd[906]: time="2022-08-07T13:59:24.765603072Z" level=info msg="ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/containerd.sock  <nil> 0 <nil>}] <nil> <nil>}" module=grpc
Aug  7 13:59:24 docker dockerd[906]: time="2022-08-07T13:59:24.765612592Z" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc
Aug  7 13:59:24 docker dockerd[906]: time="2022-08-07T13:59:24.766495752Z" level=error msg="exec: \"fuse-overlayfs\": executable file not found in $PATH" storage-driver=fuse-overlayfs
Aug  7 13:59:24 docker dockerd[906]: failed to start daemon: error initializing graphdriver: driver not supported

How can I fix this, please?

According Docker storage drivers | Docker Documentation using a nfs share for data-root is not supported with docker.

The upper, lower and merged directory would be on the nfs share as well and this is not going to play nice. Having data-root on anything else than a local blockdevice is rarely a good idea…