How to fix Error response from daemon: error enabling plugin in Docker
This error occurs when Docker cannot enable a plugin due to permission issues, missing dependencies, incompatible versions, or plugin configuration problems. The fix typically involves checking plugin requirements, ensuring proper permissions, and verifying Docker daemon compatibility.
Quick fix
Fixes Error response from daemon: error enabling plugin
# On systemd-based systems (Ubuntu, Debian, CentOS 7+)
sudo journalctl -u docker.service --since "5 minutes ago" | grep -i plugin
# Or check the daemon log directly
sudo tail -100 /var/log/docker.log | grep -i plugin- Check Docker daemon logs for detailed error
- Inspect the plugin configuration
- Verify required capabilities are granted
- Ensure required host directories exist
# On systemd-based systems (Ubuntu, Debian, CentOS 7+)sudo journalctl -u docker.service --since "5 minutes ago" | grep -i plugin# Or check the daemon log directlysudo tail -100 /var/log/docker.log | grep -i pluginError response from daemon: error enabling plugin
What this error means
When you run `docker plugin enable` or install a plugin that auto-enables, Docker attempts to start the plugin's runtime environment. If the plugin cannot be initialized, Docker returns this error from the daemon. Docker plugins extend the Docker Engine's functionality, providing volume drivers, network drivers, authorization handlers, and other features. Each plugin runs as a separate process managed by the Docker daemon. When enabling fails, it typically means the plugin cannot access required resources, lacks necessary permissions, or has configuration issues. This error commonly appears when installing storage plugins (like rexray or local-persist), network plugins, or logging drivers. The underlying cause varies significantly depending on the specific plugin type and system configuration.
Typical symptoms
- docker plugin enable <plugin-name> fails with 'error enabling plugin'
- docker plugin install completes but the plugin shows as disabled
- Plugin-dependent volumes or networks cannot be created
- docker plugin ls shows the plugin with 'false' in the enabled column
- Error appears immediately after running enable command or at daemon startup
- Containers using the plugin fail to start with plugin-related errors
Common causes
- Plugin lacks required permissions or capabilities (most common)
- Plugin dependencies not installed on host system
- Incompatible Docker version for the plugin
- Plugin configuration settings are invalid or missing
- The plugin binary is corrupted or incomplete
- SELinux or AppArmor blocking plugin operations
- Docker daemon running in rootless mode without proper plugin directory permissions
- Required host directories or devices don't exist or aren't accessible
- Plugin socket file permissions are incorrect
- Plugin was previously disabled with running references
How to fix "Error response from daemon: error enabling plugin"
The generic error message often hides the real cause. Check the Docker daemon logs for specifics:
# On systemd-based systems (Ubuntu, Debian, CentOS 7+)
sudo journalctl -u docker.service --since "5 minutes ago" | grep -i plugin
# Or check the daemon log directly
sudo tail -100 /var/log/docker.log | grep -i pluginLook for messages mentioning the plugin name, permission denied, or missing files.
Review the plugin's current configuration and required permissions:
docker plugin inspect <plugin-name>Pay attention to:
- Settings.Devices: Required device access (e.g., /dev/fuse)
- Settings.Mounts: Required mount points
- Config.Network.Type: Network requirements (host, bridge)
- Config.Linux.Capabilities: Required Linux capabilities
Example for a storage plugin:
{
"Settings": {
"Devices": [{"Path": "/dev/fuse"}],
"Mounts": [{"Source": "/var/lib/plugin-data", "Destination": "/data"}]
}
}When installing plugins, Docker prompts for capability grants. If you skipped this or the plugin needs different capabilities:
# Disable the plugin first
docker plugin disable <plugin-name>
# Re-enable with capability grant
docker plugin set <plugin-name> <capability>=<value>
# Or remove and reinstall with grants
docker plugin rm <plugin-name>
docker plugin install <plugin-name> --grant-all-permissionsWarning: Only use --grant-all-permissions for trusted plugins, as it grants extensive host access.
Many plugins require specific directories on the host. Create them if missing:
# Check what mounts the plugin needs
docker plugin inspect <plugin-name> --format '{{.Settings.Mounts}}'
# Create required directories
sudo mkdir -p /var/lib/<plugin-data-dir>
sudo chmod 755 /var/lib/<plugin-data-dir>For storage plugins, the data directory is often configurable:
docker plugin set <plugin-name> DATA_DIR=/custom/pathSome plugins require specific devices. For example, FUSE-based storage plugins need /dev/fuse:
# Check if device exists
ls -la /dev/fuse
# If missing, load the fuse module
sudo modprobe fuse
# Make it persistent across reboots
echo "fuse" | sudo tee /etc/modules-load.d/fuse.confFor other devices, check docker plugin inspect output and ensure they exist.
Check the plugin documentation for Docker version requirements:
# Check your Docker version
docker version
# Check plugin API version
docker plugin inspect <plugin-name> --format '{{.Config.Interface.Types}}'If the plugin requires a newer Docker version, upgrade Docker or use an older plugin version:
docker plugin install <plugin-name>:<version-tag>If configuration changes don't help, perform a clean reinstall:
# Force disable if it has references
docker plugin disable -f <plugin-name>
# Remove the plugin
docker plugin rm <plugin-name>
# Clean any leftover state (plugin-specific)
sudo rm -rf /var/lib/docker/plugins/<plugin-id>
# Reinstall with explicit grants
docker plugin install <plugin-name> --grant-all-permissionsThen try enabling:
docker plugin enable <plugin-name>Sometimes the daemon needs a restart to properly initialize plugin infrastructure:
sudo systemctl restart docker
# Verify daemon is running
sudo systemctl status docker
# Try enabling the plugin again
docker plugin enable <plugin-name>Check that the plugin appears enabled:
docker plugin lsAdvanced notes
### Rootless Docker Plugin Issues
Docker 25.0.5 fixed a bug where rootless Docker would fail with "open /etc/docker/plugins: permission denied". If you're running rootless Docker and encountering plugin issues:
# Update to Docker 25.0.5 or later
# Or manually create the plugins directory with correct permissions
mkdir -p ~/.config/docker/plugins### SELinux Considerations
On RHEL/CentOS/Fedora systems with SELinux enabled, plugins may be blocked:
# Check for SELinux denials
sudo ausearch -m avc -ts recent | grep docker
# Temporarily set SELinux to permissive to test
sudo setenforce 0
docker plugin enable <plugin-name>
# If it works, you need to create a custom SELinux policy
# Don't leave SELinux disabled in production
sudo setenforce 1### Plugin Socket Locations
Docker looks for plugin sockets in:
- /run/docker/plugins/ - Unix domain socket files
- /etc/docker/plugins/ - Plugin spec files
- /usr/lib/docker/plugins/ - Alternative spec location
Ensure these directories exist and have correct permissions:
sudo ls -la /run/docker/plugins/
sudo ls -la /etc/docker/plugins/### Third-Party Plugin Support
The Docker team explicitly states that third-party plugin issues should be directed to plugin maintainers. When reporting issues:
1. Include docker plugin inspect output
2. Include relevant daemon logs
3. Note your Docker version and host OS
4. Check the plugin's GitHub issues for known problems
### Plugin Retry Behavior
Docker automatically retries plugin method calls with exponential backoff for up to 30 seconds. If the plugin is slow to start (common with containerized plugins), the first few enable attempts may fail before succeeding. Try waiting a moment and running enable again.
Frequently asked questions
- What does "Error response from daemon: error enabling plugin" mean?
- When you run docker plugin enable or install a plugin that auto-enables, Docker attempts to start the plugin's runtime environment. If the plugin cannot be initialized, Docker returns this error from the daemon. Docker plugins extend the Docker Engine's functionality, providing volume drivers, network drivers, authorization handlers, and other features.
- How do I fix "Error response from daemon: error enabling plugin"?
- This error occurs when Docker cannot enable a plugin due to permission issues, missing dependencies, incompatible versions, or plugin configuration problems. The fix typically involves checking plugin requirements, ensuring proper permissions, and verifying Docker daemon compatibility.
- What causes "Error response from daemon: error enabling plugin"?
- Plugin lacks required permissions or capabilities (most common) Plugin dependencies not installed on host system Incompatible Docker version for the plugin
- Is the "Error response from daemon: error enabling plugin" error serious?
- It is a medium-severity error โ more of a blocker than a risk. The steps above resolve it.
Official resources & further reading
- ๐Docker Official Documentation
- ๐docker plugin enable - Docker Docs(Official Docs)
- ๐Docker Engine plugins - Docker Docs(Official Docs)
- ๐Docker Plugin API - Docker Docs(Official Docs)
- ๐Use Docker Engine plugins - Docker Docs(Official Docs)
- ๐
- ๐ฌDocker permission denied - Stack Overflow(Stack Overflow)
- ๐100 Common Docker Errors and Solutions - Dev.to(Official Docs)