How to fix Error response from daemon: plugin "mydriver" not found in Docker

DockerINTERMEDIATEMEDIUMUpdated Dec 6, 2025· 114 views

The 'plugin not found' error occurs when Docker cannot locate a volume driver plugin that was specified in a volume definition. Install the required plugin, verify its name, or switch to the default 'local' driver.

Quick fix

Fixes Error response from daemon: plugin "mydriver" not found

# List all installed plugins with their status
docker plugin ls

# Output shows NAME, TAG, DESCRIPTION, ENABLED
# Example output:
# NAME                  TAG      DESCRIPTION                        ENABLED
# vieux/sshfs           latest   sshFS plugin for Docker            true
  1. List installed plugins
  2. Install the required plugin
  3. Enable a disabled plugin
  4. Verify the plugin name spelling
docker — error
# List all installed plugins with their status
docker plugin ls
# Output shows NAME, TAG, DESCRIPTION, ENABLED
# Example output:
# NAME TAG DESCRIPTION ENABLED
# vieux/sshfs latest sshFS plugin for Docker true
Error response from daemon: plugin "mydriver" not found

What this error means

The "plugin not found" error in Docker occurs when you attempt to create or use a volume with a volume driver that Docker cannot locate. This typically appears as `Error response from daemon: plugin "drivername" not found` when running commands like `docker volume create` or `docker run` with volume mounts. Docker volume plugins extend Docker's storage capabilities by allowing volumes to be backed by external storage systems like NFS, cloud storage (AWS EBS, Azure Files), or distributed storage solutions. When you specify a driver with `--driver` or in a Docker Compose file's `volumes` section, Docker looks for that plugin in its plugin registry. The error means Docker searched for the named plugin but couldn't find it. This can happen because the plugin was never installed, it was installed but not enabled, its name was misspelled, or you're confusing a volume plugin with a storage driver (which are different concepts in Docker).

Typical symptoms

  • Running `docker volume create --driver mydriver` returns 'plugin not found'
  • Docker Compose fails with 'Volume specifies nonexistent driver'
  • `docker run -v` with a named volume using a custom driver fails to start
  • `docker plugin ls` shows an empty list or doesn't include the expected driver
  • Volume creation works on one machine but fails on another
  • CI/CD pipeline fails when trying to create volumes with external storage

Common causes

  1. The volume driver plugin is not installed (most common)
  2. The plugin is installed but not enabled
  3. Plugin name is misspelled or using wrong case
  4. Confusing storage drivers with volume plugins (different systems)
  5. Using a legacy plugin format that's no longer supported
  6. The plugin was abandoned or removed from Docker Hub
  7. Docker daemon restarted and plugin didn't auto-start
  8. Plugin socket file missing from /run/docker/plugins

How to fix "Error response from daemon: plugin "mydriver" not found"

1List installed plugins

First, check which plugins are currently installed and their status:

bash
# List all installed plugins with their status
docker plugin ls

# Output shows NAME, TAG, DESCRIPTION, ENABLED
# Example output:
# NAME                  TAG      DESCRIPTION                        ENABLED
# vieux/sshfs           latest   sshFS plugin for Docker            true

If the plugin you need isn't listed, you'll need to install it. If it's listed but shows ENABLED: false, you need to enable it.

Also check Docker's info for plugin directories:

bash
docker info | grep -i plugin
2Install the required plugin

Install the volume driver plugin from Docker Hub or another registry:

bash
# Install a plugin from Docker Hub
docker plugin install <plugin-name>

# Common volume plugins:
docker plugin install vieux/sshfs           # SSH/SFTP volumes
docker plugin install rexray/ebs            # AWS EBS volumes
docker plugin install local-persist         # Local persistent volumes
docker plugin install convoy                # Convoy for NFS/EBS

# Install with permissions auto-granted (non-interactive)
docker plugin install --grant-all-permissions <plugin-name>

During installation, Docker may prompt you to grant certain capabilities to the plugin. Review these carefully before accepting.

Note: Some plugins require configuration options during install:

bash
docker plugin install rexray/ebs EBS_ACCESSKEY=xxx EBS_SECRETKEY=yyy
3Enable a disabled plugin

If the plugin is installed but disabled, enable it:

bash
# Enable a specific plugin
docker plugin enable <plugin-name>

# Example
docker plugin enable vieux/sshfs

# Verify it's now enabled
docker plugin ls

If enabling fails, check the plugin's logs for configuration issues:

bash
# Inspect plugin configuration
docker plugin inspect <plugin-name>

# Check Docker daemon logs for plugin errors
sudo journalctl -u docker | grep -i plugin
4Verify the plugin name spelling

Plugin names are case-sensitive and must match exactly. Common mistakes:

bash
# WRONG - these will fail:
docker volume create --driver SSHFS myvolume     # Wrong case
docker volume create --driver sshfs myvolume     # Missing vendor prefix
docker volume create --driver vieux-sshfs myv    # Dash instead of slash

# CORRECT:
docker volume create --driver vieux/sshfs myvolume

Check the exact plugin name from Docker Hub or the plugin's documentation:

bash
# Search Docker Hub for volume plugins
docker search volume --filter is-official=false

# Check installed plugin's exact name
docker plugin ls --format '{{.Name}}'

For Docker Compose, ensure the driver name matches:

yaml
volumes:
  mydata:
    driver: vieux/sshfs  # Must match exactly
    driver_opts:
      sshcmd: "user@host:/path"
5Use the local driver as fallback

If you don't actually need an external storage plugin, use Docker's built-in local driver:

bash
# Create a volume with the default local driver
docker volume create myvolume

# Or explicitly specify local driver
docker volume create --driver local myvolume

For Docker Compose, you can often omit the driver entirely:

yaml
# Using default local driver
volumes:
  mydata:

# Or for local driver with options (NFS mount)
volumes:
  nfsdata:
    driver: local
    driver_opts:
      type: nfs
      o: addr=nfs-server.example.com,rw
      device: ":/path/to/share"

The local driver supports NFS, CIFS, and other mount types through driver_opts without requiring additional plugins.

6Check for legacy plugin configuration

Older Docker installations used a different plugin system. If you're migrating from an older setup, check for legacy plugin configurations:

bash
# Check legacy plugin directories
ls -la /etc/docker/plugins/
ls -la /usr/lib/docker/plugins/
ls -la /run/docker/plugins/

# Legacy plugins use .spec or .sock files
# Modern plugins (v2) are managed via docker plugin commands

If you find legacy plugin files, the plugin may need to be reinstalled using Docker's current plugin system:

bash
# Remove legacy plugin files (backup first)
sudo mv /etc/docker/plugins/myplugin.spec /etc/docker/plugins/myplugin.spec.bak

# Install using modern plugin system
docker plugin install <plugin-name>

Note: Legacy plugins (v1) are deprecated. Consider migrating to v2 plugins or using the local driver with mount options.

7Restart Docker daemon after plugin changes

After installing or enabling plugins, restart the Docker daemon to ensure it recognizes the changes:

bash
# Linux (systemd)
sudo systemctl restart docker

# Linux (service)
sudo service docker restart

# macOS / Windows
# Restart Docker Desktop from the system tray

Then verify the plugin is working:

bash
# Check plugin status
docker plugin ls

# Test volume creation
docker volume create --driver <plugin-name> test-volume

# Clean up test volume
docker volume rm test-volume

Advanced notes

### Storage Drivers vs Volume Plugins

Docker has two different plugin concepts that are often confused:

| Feature | Storage Driver | Volume Plugin |
|---------|---------------|---------------|
| Purpose | How Docker stores images/containers | External storage for volumes |
| Set via | dockerd --storage-driver | docker volume create --driver |
| Examples | overlay2, btrfs, devicemapper | vieux/sshfs, rexray/ebs |
| Scope | Docker Engine level | Individual volumes |

Using --volume-driver=btrfs won't work because btrfs is a storage driver, not a volume plugin. If you want btrfs for volumes, use the local driver with btrfs mount options.

### Plugin Architecture (v2)

Modern Docker plugins (v2) run as containers themselves. They communicate with Docker through a well-defined API:

bash
/run/docker/plugins/<plugin-id>.sock  # Plugin socket
/var/lib/docker/plugins/              # Plugin state

If a plugin isn't responding, check if its container is running:

bash
# List plugin containers (they run in a special namespace)
docker plugin inspect <plugin> --format '{{.PluginReference}}'

### Cloud Provider Volume Plugins

Common cloud storage plugins and their status:

| Cloud | Plugin | Status |
|-------|--------|--------|
| AWS EBS | rexray/ebs | Active |
| Azure Files | azure_file | Deprecated (use AKS) |
| GCE PD | gceplug | Community maintained |
| DigitalOcean | rexray/dobs | Active |

Warning: Some plugins like the Azure Files driver have been abandoned. If you encounter a deprecated plugin, consider:
1. Using Kubernetes with native cloud storage integration
2. Using the local driver with cloud-mounted filesystems
3. Using NFS with cloud-provided NFS services

### Plugin Permissions and Capabilities

Volume plugins often request elevated permissions:

bash
# See what permissions a plugin requests before installing
docker plugin inspect <plugin> --format '{{.Config.Linux}}'

Common capabilities requested:
- CAP_SYS_ADMIN: Required for mount operations
- Network access: For remote storage backends
- Device access: For block storage

### Debugging Plugin Issues

bash
# View plugin logs
journalctl -u docker | grep <plugin-name>

# Check plugin health
docker plugin inspect <plugin> --format '{{.Enabled}}'

# Force disable and re-enable
docker plugin disable --force <plugin>
docker plugin enable <plugin>

# Completely reinstall
docker plugin rm --force <plugin>
docker plugin install <plugin>

### Docker Compose and Plugin Dependencies

When using plugins in Docker Compose, ensure all machines in a Swarm have the plugin installed:

yaml
version: "3.8"
services:
  app:
    image: myapp
    volumes:
      - data:/app/data

volumes:
  data:
    driver: vieux/sshfs
    driver_opts:
      sshcmd: "user@server:/data"
      password: "secret"  # Consider using Docker secrets instead

In Swarm mode, the volume plugin must be installed on every node where the service might be scheduled.

Frequently asked questions

What does "Error response from daemon: plugin "mydriver" not found" mean?
The "plugin not found" error in Docker occurs when you attempt to create or use a volume with a volume driver that Docker cannot locate. This typically appears as Error response from daemon: plugin "drivername" not found when running commands like docker volume create or docker run with volume mounts. Docker volume plugins extend Docker's storage capabilities by allowing volumes to be backed by external storage systems like NFS, cloud storage (AWS EBS, Azure Files), or distributed storage solutions.
How do I fix "Error response from daemon: plugin "mydriver" not found"?
The 'plugin not found' error occurs when Docker cannot locate a volume driver plugin that was specified in a volume definition. Install the required plugin, verify its name, or switch to the default 'local' driver.
What causes "Error response from daemon: plugin "mydriver" not found"?
The volume driver plugin is not installed (most common) The plugin is installed but not enabled Plugin name is misspelled or using wrong case
Is the "Error response from daemon: plugin "mydriver" not found" error serious?
It is a medium-severity error — more of a blocker than a risk. The steps above resolve it.

Official resources & further reading