# ZFS error on Docker Engine 29

**URL:** <https://forums.docker.com/t/zfs-error-on-docker-engine-29/150387>\
**Category:** General\
**Tags:** zfs, linux\
**Created:** [November 11, 2025, 2:12pm UTC](https://forums.docker.com/t/zfs-error-on-docker-engine-29/150387 "2025-11-11T14:12:07Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![lb88](https://sea3.discourse-cdn.com/docker/user_avatar/forums.docker.com/lb88/32/55775_2.png) [@lb88](https://forums.docker.com/u/lb88)\
**Post date:** [November 11, 2025, 2:12pm UTC](https://forums.docker.com/t/zfs-error-on-docker-engine-29/150387/1 "2025-11-11T14:12:07Z")

</div>

Hi, I updated to docker 29 today and instantly docker crashed. Checking journalctl revealed the following error:

`failed to start daemon: configured driver "zfs" not available: unavailable`

This is my daemon.json file:

```auto
{
  "storage-driver": "zfs",
  "data-root": "/mnt/apps/docker"
}

```

Any idea why this would have happened? I’ve downgraded to v28 for the time being and everything is working again as normal.

---

<div class="post-metadata">

**Author:** ![flofi](https://sea3.discourse-cdn.com/docker/user_avatar/forums.docker.com/flofi/32/50708_2.png) [@flofi](https://forums.docker.com/u/flofi)\
**Post date:** [November 11, 2025, 6:54pm UTC](https://forums.docker.com/t/zfs-error-on-docker-engine-29/150387/2 "2025-11-11T18:54:59Z")

</div>

Not gonna help much but just to confirm: same issue here. Rolling back to v28 fixed it as well.

Debian Bookworm on ZFS

---

<div class="post-metadata">

**Author:** ![lb88](https://sea3.discourse-cdn.com/docker/user_avatar/forums.docker.com/lb88/32/55775_2.png) [@lb88](https://forums.docker.com/u/lb88)\
**Post date:** [November 11, 2025, 6:58pm UTC](https://forums.docker.com/t/zfs-error-on-docker-engine-29/150387/3 "2025-11-11T18:58:46Z")

</div>

That’s good to know, I was wondering whether to just got for a reinstall and see if it was a one-off but I guess not. I’m on Debian Trixie by the way.

---

<div class="post-metadata">

**Author:** ![nsmrtks](https://sea3.discourse-cdn.com/docker/user_avatar/forums.docker.com/nsmrtks/32/62336_2.png) [@nsmrtks](https://forums.docker.com/u/nsmrtks)\
**Post date:** [November 12, 2025, 12:53am UTC](https://forums.docker.com/t/zfs-error-on-docker-engine-29/150387/4 "2025-11-12T00:53:27Z")

</div>

Same issue here.  
Two Ubuntu 24.04.03 on x86\_64 computers. One physical and one virtual machine.  
Both have /var/lib/docker as a ZFS filesystem.

Docker Engine has been installed following the steps below.

> **[Ubuntu](https://docs.docker.com/engine/install/ubuntu/)**
>
> Jumpstart your client-side server applications with Docker Engine on Ubuntu. This guide details prerequisites and multiple methods to install Docker Engine on Ubuntu.

/etc/docker/daemon.json

```auto
{
        "storage-driver": "zfs",
        "proxies": {
                ...
        }
}

```

I did ‘apt upgrade’ yesterday, docker-ce is upgraded, and it does not start.

/var/log/syslog says:

```auto
... dockerd[18843]: failed to start daemon: configured driver "zfs" not available: unavailable

```

I downgraded docker-ce, then it is working now.

problematic: 5:29.0.0-1~ubuntu.24.04~noble  
downgraded: 5:28.5.2-1~ubuntu.24.04~noble

The below does not mention about ZFS.

> **[Deprecated features](https://docs.docker.com/engine/deprecated/)**
>
> Deprecated Features.

API breaking changes?

---

<div class="post-metadata">

**Author:** ![kevinruffus](https://sea3.discourse-cdn.com/docker/user_avatar/forums.docker.com/kevinruffus/32/54553_2.png) [@kevinruffus](https://forums.docker.com/u/kevinruffus)\
**Post date:** [November 12, 2025, 1:24am UTC](https://forums.docker.com/t/zfs-error-on-docker-engine-29/150387/5 "2025-11-12T01:24:57Z")

</div>

Ok, so it isn’t just me.

Ran updates, Docker took a dump.

Ubuntu 24.04

---

<div class="post-metadata">

**Author:** ![itris666](https://sea3.discourse-cdn.com/docker/user_avatar/forums.docker.com/itris666/32/55249_2.png) [@itris666](https://forums.docker.com/u/itris666)\
**Post date:** [November 12, 2025, 2:26am UTC](https://forums.docker.com/t/zfs-error-on-docker-engine-29/150387/6 "2025-11-12T02:26:46Z")

</div>

same here. ubuntu noble as well. no related specific config that I could think of.

---

<div class="post-metadata">

**Author:** ![vinny8675309](https://sea3.discourse-cdn.com/docker/user_avatar/forums.docker.com/vinny8675309/32/62340_2.png) [@vinny8675309](https://forums.docker.com/u/vinny8675309)\
**Post date:** [November 12, 2025, 6:14am UTC](https://forums.docker.com/t/zfs-error-on-docker-engine-29/150387/7 "2025-11-12T06:14:34Z")

</div>

I’m seeing the same error as well.

```auto
2025-11-12T05:25:50.799472+00:00 HOST dockerd[4069105]: failed to start daemon: configured driver "zfs" not available: unavailable

```

I’m also running Noble:

```auto
> lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04.3 LTS
Release: 24.04
Codename: noble

```

Reverting to v28.5.2 got everything back running for me as well.

---

<div class="post-metadata">

**Author:** ![rimelek](https://sea3.discourse-cdn.com/docker/user_avatar/forums.docker.com/rimelek/32/41602_2.png) [@rimelek](https://forums.docker.com/u/rimelek)\
**Post date:** [November 12, 2025, 9:15pm UTC](https://forums.docker.com/t/zfs-error-on-docker-engine-29/150387/8 "2025-11-12T21:15:15Z")

</div>

I checked the source code of moby and I see that this error message is only shown when the containerd image store is used. Which is by default enabled in the new version

> **[Engine v29](https://docs.docker.com/engine/release-notes/29/)**
>
> Learn about the new features, bug fixes, and breaking changes for Docker Engine

> containerd image store is now the default for **fresh installs**.

Although it says “fresh installs”, after upgrading, I got the new snapshotter as well. I am not sure if zfs should work with the new image store, but I disabled the containerd snapshotter in the docker daemon config

```auto
  "features": {
    "containerd-snapshotter": false
  }

```

Then I got a different error message, which is understandable as I have no zfs installed on my test machine.

```auto
level=info msg="[graphdriver] trying configured driver: zfs"
level=debug msg="zfs command is not available: exec: \"zfs\": executable file not found in $>

```

This is the source code by the way if someone is interested

> <https://github.com/moby/moby/blob/d105562beff448ae44d6e3a2f7738b235fd197b5/daemon/daemon.go#L1271>

But if I intrpret it correctly, the storage driver is added to the chcked list only when the containerd snapshotter is used.

> <https://github.com/moby/moby/blob/d105562beff448ae44d6e3a2f7738b235fd197b5/daemon/daemon.go#L1252>

**EDIT:**

I found this issue on GitHub

> <https://github.com/moby/moby/issues/51475>
>
> \### Description
> 
> After upgrading to \`v29.0.0\`, \`dockerd\` crashes on startup beca…use it can't load the ZFS storage backend driver.
> While \[the release page\](https://github.com/moby/moby/releases/tag/docker-v29.0.0) mentions several "breaking changes", removed ZFS support does not appear to be among them, so I assume this is a bug.
> 
> \### Reproduce
> 
> 1. configure \[ZFS storage backend\](https://docs.docker.com/engine/storage/drivers/zfs-driver/)
> 2. crash
> 
> \### Expected behavior
> 
> don't crash
> 
> \### docker version
> 
> \`\`\`bash
> Client: Docker Engine - Community
> Version: 29.0.0
> API version: 1.52
> Go version: go1.25.4
> Git commit: 3d4129b
> Built: Mon Nov 10 21:46:31 2025
> OS/Arch: linux/amd64
> Context: default
> \`\`\`
> 
> \### docker info
> 
> \`\`\`bash
> Client: Docker Engine - Community
> Version: 29.0.0
> Context: default
> Debug Mode: false
> Plugins:
> buildx: Docker Buildx (Docker Inc.)
> Version: v0.29.1
> Path: /usr/libexec/docker/cli-plugins/docker-buildx
> compose: Docker Compose (Docker Inc.)
> Version: v2.40.3
> Path: /usr/libexec/docker/cli-plugins/docker-compose
> \`\`\`
> 
> \### Additional Info
> 
> \`\`\`
> Nov 11 11:14:42 dstank dockerd\[4924\]: time="2025-11-11T11:14:42.988491769+01:00" level=info msg="Starting up"
> Nov 11 11:14:42 dstank dockerd\[4924\]: time="2025-11-11T11:14:42.989649796+01:00" level=info msg="OTEL tracing is not configured, using no-op tracer provider"
> Nov 11 11:14:42 dstank dockerd\[4924\]: time="2025-11-11T11:14:42.989797369+01:00" level=info msg="CDI directory does not exist, skipping: failed to monitor for changes: no such file or directory" dir=/etc/cdi
> Nov 11 11:14:42 dstank dockerd\[4924\]: time="2025-11-11T11:14:42.989826479+01:00" level=info msg="CDI directory does not exist, skipping: failed to monitor for changes: no such file or directory" dir=/var/run/cdi
> Nov 11 11:14:42 dstank dockerd\[4924\]: time="2025-11-11T11:14:42.989942020+01:00" level=info msg="detected 127.0.0.53 nameserver, assuming systemd-resolved, so using resolv.conf: /run/systemd/resolve/resolv.conf"
> Nov 11 11:14:43 dstank dockerd\[4924\]: time="2025-11-11T11:14:43.007009507+01:00" level=info msg="Creating a containerd client" address=/run/containerd/containerd.sock timeout=1m0s
> Nov 11 11:14:43 dstank dockerd\[4924\]: time="2025-11-11T11:14:43.014541153+01:00" level=info msg="Loading containers: start."
> Nov 11 11:14:43 dstank dockerd\[4924\]: time="2025-11-11T11:14:43.016865083+01:00" level=info msg="Starting daemon with containerd snapshotter integration enabled"
> Nov 11 11:14:43 dstank dockerd\[4924\]: time="2025-11-11T11:14:43.019152647+01:00" level=warning msg="Preferred snapshotter not available in containerd" message="lstat /var/lib/containerd/io.containerd.snapshotter.v1.zfs: no such file or directory: skip plugin"
> Nov 11 11:14:43 dstank dockerd\[4924\]: failed to start daemon: configured driver "zfs" not available: unavailable
> Nov 11 11:14:43 dstank systemd\[1\]: docker.service: Main process exited, code=exited, status=1/FAILURE
> Nov 11 11:14:43 dstank systemd\[1\]: docker.service: Failed with result 'exit-code'.
> Nov 11 11:14:43 dstank systemd\[1\]: Failed to start docker.service - Docker Application Container Engine.
> Nov 11 11:14:45 dstank systemd\[1\]: docker.service: Scheduled restart job, restart counter is at 3.
> Nov 11 11:14:45 dstank systemd\[1\]: docker.service: Start request repeated too quickly.
> Nov 11 11:14:45 dstank systemd\[1\]: docker.service: Failed with result 'exit-code'.
> Nov 11 11:14:45 dstank systemd\[1\]: Failed to start docker.service - Docker Application Container Engine.
> \`\`\`

---

<div class="post-metadata">

**Author:** ![itris666](https://sea3.discourse-cdn.com/docker/user_avatar/forums.docker.com/itris666/32/55249_2.png) [@itris666](https://forums.docker.com/u/itris666)\
**Post date:** [November 15, 2025, 5:14pm UTC](https://forums.docker.com/t/zfs-error-on-docker-engine-29/150387/9 "2025-11-15T17:14:47Z")

</div>

There has just been an update in ubuntu noble repo, where “containerd-snapshotter” is again false by default. I’ve transitioned to it so I had to reactivate it in daemon.json;

```auto
{
  "storage-driver" : "zfs",
  "features":{
    "containerd-snapshotter" : true
  }
}
```

---

<div class="post-metadata">

**Author:** ![lb88](https://sea3.discourse-cdn.com/docker/user_avatar/forums.docker.com/lb88/32/55775_2.png) [@lb88](https://forums.docker.com/u/lb88)\
**Post date:** [November 15, 2025, 5:41pm UTC](https://forums.docker.com/t/zfs-error-on-docker-engine-29/150387/10 "2025-11-15T17:41:54Z")

</div>

I saw the update as well - I bit the bullet and updated from 28 to 29.0.1 and zfs is working as normal.

---

<div class="post-metadata">

**Author:** ![nsmrtks](https://sea3.discourse-cdn.com/docker/user_avatar/forums.docker.com/nsmrtks/32/62336_2.png) [@nsmrtks](https://forums.docker.com/u/nsmrtks)\
**Post date:** [November 18, 2025, 12:15am UTC](https://forums.docker.com/t/zfs-error-on-docker-engine-29/150387/11 "2025-11-18T00:15:53Z")

</div>

I upgraded docker-ce to 5:29.0.1-1~ubuntu.24.04~noble yesterday.  
After upgrading, it starts, without any changes to ‘/etc/docker/daemon.json’.  
And I have not encountered any problems for half a day.

Now docker-ce is upgraded to 5:29.0.2-1~ubuntu.24.04~noble this morning.  
I hope nothing goes wrong with this version also.

> **[Engine v29](https://docs.docker.com/engine/release-notes/29/#2902)**
>
> Learn about the new features, bug fixes, and breaking changes for Docker Engine

---

<div class="post-metadata">

**Author:** ![meyay](https://sea3.discourse-cdn.com/docker/user_avatar/forums.docker.com/meyay/32/34000_2.png) [@meyay](https://forums.docker.com/u/meyay)\
**Post date:** [November 18, 2025, 7:59am UTC](https://forums.docker.com/t/zfs-error-on-docker-engine-29/150387/12 "2025-11-18T07:59:29Z")

</div>

For all those that haven’t read the [Docker Engine v29 blog post](https://www.docker.com/blog/docker-engine-version-29/), there are two mentions of the graph driver that will affect you:

> - Legacy graph drivers are still available, but are now deprecated. New installs can still opt out of Containerd image store if there is any issue.

> - The graph driver backend will be removed in a future release.

So from docker v30 on a config like @itris666 shared might become necessary.

---

<div class="post-metadata">

**Author:** ![mastercatz](https://sea3.discourse-cdn.com/docker/user_avatar/forums.docker.com/mastercatz/32/54364_2.png) [@mastercatz](https://forums.docker.com/u/mastercatz)\
**Post date:** [November 30, 2025, 10:33am UTC](https://forums.docker.com/t/zfs-error-on-docker-engine-29/150387/13 "2025-11-30T10:33:31Z")

</div>

oh great so I wasted a day because of a regression

practically nuked my OS trying to reinstall docker to find it was just zfs that was not working

pointing finger at docker-rootless as it seems to use fuse-overlayfs regardless what setting is used

also might swap over to a dedicated zfs dataset / volume and try

{  
“storage-opts”: [“zfs.fsname=ZFS3WAY24B/docker”]  
}

Ubuntu 25.04

Docker version 29.1.1, build 0aedba5

but I have no zfs errors , it just does not start if the data is on zfs , if I remove daemon.json its works fine creating fresh /var/lib/docker install folder but thats on my boot drive / btrfs

tried with these settings removing graph for the snapshotter

```auto
{
“data-root”: “/ZFS3WAY24B/docker”,
“storage-driver”: “zfs”,
“features”:{
“containerd-snapshotter” : true
}

#“graph”: “/ZFS3WAY24B/docker”

}

systemctl status docker.service
× docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled)
    Drop-In: /etc/systemd/system/docker.service.d
             └─override.conf
     Active: failed (Result: exit-code) since Sun 2025-11-30 20:52:32 AEST; 45s ago
   Duration: 19.555s
 Invocation: d084d1437de94bd1929d2aac78b47f3f
TriggeredBy: × docker.socket
       Docs: https://docs.docker.com
    Process: 1715092 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE)
   Main PID: 1715092 (code=exited, status=1/FAILURE)

Nov 30 20:52:32 aio systemd[1]: docker.service: Scheduled restart job, restart counter is at 3.
Nov 30 20:52:32 aio systemd[1]: docker.service: Start request repeated too quickly.
Nov 30 20:52:32 aio systemd[1]: docker.service: Failed with result 'exit-code'.
Nov 30 20:52:32 aio systemd[1]: Failed to start docker.service - Docker Application Container Engine.

journalctl -xeu docker.service
░░ The job identifier is 12415415 and the job result is failed.
Nov 30 20:52:32 aio systemd[1]: docker.service: Scheduled restart job, restart counter is at 3.
░░ Subject: Automatic restarting of a unit has been scheduled
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░ 
░░ Automatic restarting of the unit docker.service has been scheduled, as the result for
░░ the configured Restart= setting for the unit.
Nov 30 20:52:32 aio systemd[1]: docker.service: Start request repeated too quickly.
Nov 30 20:52:32 aio systemd[1]: docker.service: Failed with result 'exit-code'.
░░ Subject: Unit failed
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░ 
░░ The unit docker.service has entered the 'failed' state with result 'exit-code'.
Nov 30 20:52:32 aio systemd[1]: Failed to start docker.service - Docker Application Container Engine.
░░ Subject: A start job for unit docker.service has failed
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░ 
░░ A start job for unit docker.service has finished with a failure.
░░ 
░░ The job identifier is 12416145 and the job result is failed.

```

---

<div class="post-metadata">

**Author:** ![zodac](https://sea3.discourse-cdn.com/docker/user_avatar/forums.docker.com/zodac/32/38357_2.png) [@zodac](https://forums.docker.com/u/zodac)\
**Post date:** [December 9, 2025, 11:03am UTC](https://forums.docker.com/t/zfs-error-on-docker-engine-29/150387/14 "2025-12-09T11:03:07Z")

</div>

Is it possible to get this working on v29.1.2? getting the following on start-up:

> INFO[2025-12-10T00:00:39.909691465+13:00] Starting up  
> INFO[2025-12-10T00:00:39.910140054+13:00] OTEL tracing is not configured, using no-op tracer provider  
> INFO[2025-12-10T00:00:39.910201893+13:00] CDI directory does not exist, skipping: failed to monitor for changes: no such file or directory dir=/etc/cdi  
> INFO[2025-12-10T00:00:39.910214393+13:00] CDI directory does not exist, skipping: failed to monitor for changes: no such file or directory dir=/var/run/cdi  
> INFO[2025-12-10T00:00:39.919508674+13:00] Creating a containerd client address=/run/containerd/containerd.sock timeout=1m0s  
> INFO[2025-12-10T00:00:39.924593297+13:00] Loading containers: start.  
> INFO[2025-12-10T00:00:39.924640166+13:00] [graphdriver] trying configured driver: zfs  
> failed to start daemon: error initializing graphdriver: prerequisites for driver not satisfied (wrong filesystem?): zfs

When adding the following to /etc/docker/daemon.json:

> “features”: {  
> “containerd-snapshotter”: false  
> }

I just get a different error:

> INFO[2025-12-10T00:01:47.867783275+13:00] Starting up  
> INFO[2025-12-10T00:01:47.868320874+13:00] OTEL tracing is not configured, using no-op tracer provider  
> INFO[2025-12-10T00:01:47.868402787+13:00] CDI directory does not exist, skipping: failed to monitor for changes: no such file or directory dir=/etc/cdi  
> INFO[2025-12-10T00:01:47.868412927+13:00] CDI directory does not exist, skipping: failed to monitor for changes: no such file or directory dir=/var/run/cdi  
> WARN[2025-12-10T00:01:47.876770206+13:00] “containerd-snapshotter” is now the default and no longer needed to be set  
> INFO[2025-12-10T00:01:47.877299268+13:00] Creating a containerd client address=/run/containerd/containerd.sock timeout=1m0s  
> INFO[2025-12-10T00:01:47.882555691+13:00] Loading containers: start.  
> INFO[2025-12-10T00:01:47.882592654+13:00] Starting daemon with containerd snapshotter integration enabled  
> WARN[2025-12-10T00:01:47.884579145+13:00] Preferred snapshotter not available in containerd message=“lstat /var/lib/containerd/io.containerd.snapshotter.v1.zfs: no such file or directory: skip plugin”  
> failed to start daemon: configured driver “zfs” not available: unavailable

Running into issues even when I downgrade to v28 - do I need a clean reinstall at this point?

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/docker/original/3X/d/4/d4fbccd46c81bfcffe9822e20e17736d946fa821.png) [@system](https://forums.docker.com/u/system)\
**Post date:** [January 8, 2026, 11:03am UTC](https://forums.docker.com/t/zfs-error-on-docker-engine-29/150387/15 "2026-01-08T11:03:09Z")

</div>

Closed on January 8, 2026, 11:03am UTC

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
