Home Explore Blog Models CI



docker

2nd chunk of `content/manuals/engine/storage/drivers/select-storage-driver.md`
bed4aecc4ebdf61a4d4581c88b1feeb81613efe95867cb670000000100000fac
| `btrfs` and `zfs` | The `btrfs` and `zfs` storage drivers allow for advanced options, such as creating "snapshots", but require more maintenance and setup. Each of these relies on the backing filesystem being configured correctly.                                                                                                                                   |
| `vfs`             | The `vfs` storage driver is intended for testing purposes, and for situations where no copy-on-write filesystem can be used. Performance of this storage driver is poor, and is not generally recommended for production use.                                                                                                                        |

<!-- markdownlint-disable reference-links-images -->

The Docker Engine has a prioritized list of which storage driver to use if no
storage driver is explicitly configured, assuming that the storage driver meets
the prerequisites, and automatically selects a compatible storage driver. You
can see the order in the [source code for Docker Engine {{% param "docker_ce_version" %}}](https://github.com/moby/moby/blob/v{{% param "docker_ce_version" %}}/daemon/graphdriver/driver_linux.go#L52-L53).
{ #storage-driver-order }

<!-- markdownlint-enable reference-links-images -->

Some storage drivers require you to use a specific format for the backing filesystem.
If you have external requirements to use a specific backing filesystem, this may
limit your choices. See [Supported backing filesystems](#supported-backing-filesystems).

After you have narrowed down which storage drivers you can choose from, your choice
is determined by the characteristics of your workload and the level of stability
you need. See [Other considerations](#other-considerations) for help in making
the final decision.

## Supported storage drivers per Linux distribution

> [!NOTE]
>
> Modifying the storage driver by editing the daemon configuration file isn't
> supported on Docker Desktop. Only the default `overlay2` driver or the
> [containerd storage](/manuals/desktop/features/containerd.md) are supported. The
> following table is also not applicable for the Docker Engine in rootless
> mode. For the drivers available in rootless mode, see the [Rootless mode
> documentation](/manuals/engine/security/rootless.md).

Your operating system and kernel may not support every storage driver. For
example, `btrfs` is only supported if your system uses `btrfs` as storage. In
general, the following configurations work on recent versions of the Linux
distribution:

| Linux distribution   | Recommended storage drivers  | Alternative drivers  |
| :------------------- | :--------------------------- | :------------------- |
| Ubuntu               | `overlay2`                   | `zfs`, `vfs`         |
| Debian               | `overlay2`                   | `vfs`                |
| CentOS               | `overlay2`                   | `zfs`, `vfs`         |
| Fedora               | `overlay2`                   | `zfs`, `vfs`         |
| SLES 15              | `overlay2`                   | `vfs`                |
| RHEL                 | `overlay2`                   | `vfs`                |

When in doubt, the best all-around configuration is to use a modern Linux
distribution with a kernel that supports the `overlay2` storage driver, and to
use Docker volumes for write-heavy workloads instead of relying on writing data
to the container's writable layer.

The `vfs` storage driver is usually not the best choice, and primarily intended
for debugging purposes in situations where no other storage-driver is supported.
Before using the `vfs` storage driver, be sure to read about
[its performance and storage characteristics and limitations](vfs-driver.md).

The recommendations in the table above are known to work for a large number of
users. If you use a recommended configuration and find a reproducible issue,
it's likely to be fixed very quickly. If the driver that you want to use is

Title: Storage Driver Selection and Linux Distribution Support
Summary
This section details the characteristics of `btrfs`, `zfs`, and `vfs` storage drivers, noting the advanced features and higher maintenance of the first two, and the poor performance of the last. It mentions that Docker Engine automatically selects a storage driver if one isn't explicitly configured, based on prerequisites. The document then outlines supported storage drivers for various Linux distributions, such as Ubuntu, Debian, CentOS, Fedora, SLES 15, and RHEL, generally recommending `overlay2`. It advises using Docker volumes for write-heavy workloads and cautions against using `vfs` except for debugging, due to its performance limitations.