This error occurs when Docker attempts to use the OverlayFS storage driver but your Linux kernel either lacks OverlayFS support, has an incompatible kernel version, or the backing filesystem doesn't meet requirements like d_type support.
The OverlayFS (overlay filesystem) is Docker's recommended storage driver for managing layered container images. When Docker starts, it checks if the kernel supports OverlayFS and if the underlying filesystem is compatible. This error appears when: - Your Linux kernel version is too old to support OverlayFS (requires kernel 3.18+ for overlay, 4.0+ for overlay2) - The overlay kernel module is not loaded or available - The backing filesystem (where /var/lib/docker resides) doesn't support OverlayFS - XFS filesystem is formatted without d_type support (ftype=0 instead of ftype=1) - The filesystem doesn't support extended attributes (trusted.* or user.*) OverlayFS was merged into the Linux kernel in version 3.18, with significant improvements in version 4.0 that enabled the more efficient overlay2 driver. RHEL/CentOS backported support to kernel 3.10.0-514 and higher.
First, verify your Linux kernel version meets the minimum requirements:
uname -rRequirements:
- overlay driver: Linux kernel 3.18 or higher
- overlay2 driver (recommended): Linux kernel 4.0 or higher
- RHEL/CentOS exception: kernel 3.10.0-514 or higher
If your kernel is too old, you'll need to upgrade it or use a different storage driver.
Check if the overlay module is loaded and try loading it:
# Check if overlay module is loaded
lsmod | grep overlay
# Load the overlay module
sudo modprobe overlay
# Verify it loaded successfully
lsmod | grep overlayIf the module fails to load, your kernel may not have OverlayFS support compiled in. Check kernel configuration:
# Check kernel config for overlay support
grep -i overlay /boot/config-$(uname -r) 2>/dev/null || \
zcat /proc/config.gz 2>/dev/null | grep -i OVERLAYLook for CONFIG_OVERLAY_FS=y or CONFIG_OVERLAY_FS=m.
OverlayFS requires a compatible backing filesystem. Check what filesystem /var/lib/docker uses:
df -T /var/lib/dockerFor XFS filesystems, verify d_type support is enabled:
xfs_info /var/lib/docker | grep ftypeYou need ftype=1 for OverlayFS support. If it shows ftype=0, the XFS partition was formatted without d_type support.
For ext4 filesystems, d_type is supported by default since kernel 3.14.
Unsupported filesystems:
- NFS (doesn't support extended attributes)
- Some older ext3 configurations
Warning: This will destroy all data on the filesystem. Back up your data first!
If your XFS filesystem lacks d_type support (ftype=0), you need to reformat it:
# Stop Docker
sudo systemctl stop docker
# Back up Docker data if needed
sudo tar -cvzf docker-backup.tar.gz /var/lib/docker
# Unmount the filesystem (adjust device as needed)
sudo umount /var/lib/docker
# Reformat with ftype=1 for d_type support
sudo mkfs.xfs -n ftype=1 -f /dev/sdX
# Remount and restore
sudo mount /dev/sdX /var/lib/docker
# Start Docker
sudo systemctl start dockerIf you cannot upgrade your kernel or fix the filesystem, configure Docker to use a different storage driver:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{
"storage-driver": "vfs"
}
EOF
sudo systemctl restart dockerAvailable alternatives:
- vfs: Universal fallback, works everywhere but very slow and uses more disk space
- devicemapper: Works on older systems (deprecated, not recommended for new deployments)
- btrfs: If your filesystem is Btrfs
- zfs: If your filesystem is ZFS
Note: The vfs driver doesn't use copy-on-write, so each layer is fully copied. Use it only as a last resort.
If your kernel is too old, consider upgrading:
Ubuntu/Debian:
sudo apt update
sudo apt install linux-generic
sudo rebootRHEL/CentOS 7:
sudo yum update kernel
sudo rebootRHEL/CentOS 8+ / Fedora:
sudo dnf update kernel
sudo rebootAfter reboot, verify the new kernel and retry Docker:
uname -r
sudo modprobe overlay
sudo systemctl start dockerTo make the overlay module load automatically at boot:
# Add overlay to modules to load at boot
echo "overlay" | sudo tee /etc/modules-load.d/overlay.conf
# Verify it's configured
cat /etc/modules-load.d/overlay.confAlternatively, on systemd-based systems:
sudo tee /etc/modules-load.d/containerd.conf <<EOF
overlay
br_netfilter
EOF
sudo modprobe overlay
sudo modprobe br_netfilterAfter applying fixes, verify Docker is functioning correctly:
# Check Docker daemon status
sudo systemctl status docker
# Verify the storage driver in use
docker info | grep "Storage Driver"
# Run a test container
docker run --rm hello-worldThe storage driver should now show "overlay2" (or your configured driver), and the test container should run successfully.
Kernel Version Requirements by Driver:
| Driver | Minimum Kernel | Recommended |
|--------|---------------|-------------|
| overlay | 3.18 | 4.0+ |
| overlay2 | 4.0 (or RHEL 3.10.0-514) | 4.0+ |
| fuse-overlayfs | Any (userspace) | For rootless Docker |
Filesystem Compatibility Matrix:
| Filesystem | overlay/overlay2 Support |
|------------|-------------------------|
| ext4 | Yes (recommended) |
| XFS | Yes, with ftype=1 |
| Btrfs | Use btrfs driver instead |
| ZFS | Use zfs driver instead |
| NFS | No (lacks extended attributes) |
| tmpfs | Yes |
XFS d_type Explained:
The d_type (directory entry type) field allows the filesystem to store file type information directly in directory entries. Without it, the kernel must perform additional stat() calls to determine file types, which breaks OverlayFS assumptions.
Check d_type support:
xfs_info /path | grep ftype
# ftype=1 means d_type is supported
# ftype=0 means d_type is NOT supportedRootless Docker and fuse-overlayfs:
If you're running rootless Docker and OverlayFS isn't available, consider using fuse-overlayfs:
# Install fuse-overlayfs
sudo apt install fuse-overlayfs # Debian/Ubuntu
sudo dnf install fuse-overlayfs # Fedora/RHEL
# Configure for rootless Docker
mkdir -p ~/.config/docker
cat > ~/.config/docker/daemon.json <<EOF
{
"storage-driver": "fuse-overlayfs"
}
EOFVirtualized Environments:
In VMs (especially Xen, OpenVZ, or some cloud providers), the host kernel may not expose OverlayFS to guests. Options:
- Use the vfs driver (slow but universal)
- Request OverlayFS support from your hosting provider
- Use a VM with a full kernel (not container-based virtualization)
Checking OverlayFS in /proc:
cat /proc/filesystems | grep overlayIf "overlay" appears, your kernel has OverlayFS support.
unable to configure the Docker daemon with file /etc/docker/daemon.json
How to fix 'unable to configure the Docker daemon with file daemon.json' in Docker
docker: Error response from daemon: OCI runtime create failed: container_linux.go: starting container process caused: exec: "/docker-entrypoint.sh": stat /docker-entrypoint.sh: no such file or directory
How to fix 'exec: entrypoint.sh: no such file or directory' in Docker
image operating system "linux" cannot be used on this platform
How to fix 'image operating system linux cannot be used on this platform' in Docker
dockerfile parse error line 5: unknown instruction: RRUN
How to fix 'unknown instruction' Dockerfile parse error in Docker
manifest unknown: manifest unknown
How to fix 'manifest unknown' in Docker