Home / Alt manpages / docker-plugin-enable(1)

  • docker-plugin-enable(1)
  • User command
  • linux

Turn On a Docker Plugin with docker plugin enable

docker plugin enable starts an installed but disabled plugin, the last gate before its code can touch your host. This guide uses Docker Community Edition CLI 29.8.1 from package docker-ce-cli version 5:29.8.1-1~ubuntu.24.04~noble, as installed on the reference machine.

Allow about ten minutes. You need a working Docker Engine, the plugin already installed but disabled, and permission to talk to the daemon. Commands that only inspect local state are ordinary user commands; the enable operation changes daemon-managed state, so use the account that normally administers Docker. If that means sudo on your host, prefix only the Docker command, for example sudo docker plugin enable ....

Checkpoint

This workflow enables an existing plugin. It does not install one, grant new permissions, alter plugin settings or remove a plugin.

1. Confirm the installed command

Check the client version and the command contract before changing anything. These are read-only checks:

$ docker version --format '{{.Client.Version}}'
29.8.1
$ docker plugin enable --help
Usage:  docker plugin enable [OPTIONS] PLUGIN

Enable a plugin

Options:
      --timeout int   HTTP client timeout (in seconds) (default 30)

The syntax is docker plugin enable [OPTIONS] PLUGIN. The positional value is the plugin reference or local name, not a container name. The only option in this installed client is --timeout, measured in seconds, with a default of 30.

2. Find a disabled plugin

List the plugins known to this Docker Engine:

$ docker plugin ls
ID        NAME      DESCRIPTION   ENABLED

Your output will contain different rows. Find the exact plugin in the NAME column and check that ENABLED is false, or otherwise shows it as disabled. Docker's own example uses an installed plugin named something like vendor/plugin-name:latest, but use the name your daemon actually returns. Do not guess a registry reference, and do not enable a plugin just because a similarly named image exists.

If the list is empty, stop here. docker plugin enable does not install a plugin; installation is a separate operation that can request host permissions, devices or capabilities, so investigate its provenance and requested privileges before installing anything.

Checkpoint

Record the exact value you intend to pass. In the examples below, replace PLUGIN_REF with that value:

$ PLUGIN_REF='vendor/plugin-name:latest'
$ docker plugin inspect "$PLUGIN_REF"

Inspecting first gives you a chance to review the plugin's configuration and declared requirements. Treat a third-party plugin as privileged software; enabling it can start code that interacts with Docker or host resources.

3. Enable the plugin

When the plugin identity and its permissions are acceptable, enable it:

$ docker plugin enable "$PLUGIN_REF"
vendor/plugin-name:latest

A successful command prints the plugin reference and exits with status zero; the exact reference in the output follows your installation. This is the state-changing step: it can make the plugin available to later Docker operations, and a dependent service may start using it straight away. Do not run it mid-change-window unless you know which workloads depend on the plugin.

If the daemon requires elevated access, retry the same command through your normal administration path:

$ sudo docker plugin enable "$PLUGIN_REF"

Warning

Do not solve a plugin failure by granting all permissions or changing host security controls without reviewing the plugin first. The command's timeout only controls how long the HTTP client waits for the daemon request; it does not make a failed plugin healthy or increase the plugin's privileges.

4. Verify the enabled state

Check the list again and confirm the row now reports true in the ENABLED column:

$ docker plugin ls
ID            NAME                       DESCRIPTION                ENABLED
...           vendor/plugin-name:latest  ...                        true

The ID, description and spacing are host-specific; what matters is the matching plugin name with an enabled state. For a more detailed check, inspect the plugin again:

$ docker plugin inspect "$PLUGIN_REF"

Tip

Do not treat a successful enable response as proof that a volume, network or authorisation workflow actually works. Run the smallest harmless operation that exercises the plugin's intended interface, using the vendor's documented test, and keep that test separate from production workloads.

5. Set a longer timeout only when justified

The default HTTP client timeout is 30 seconds. If a known slow daemon or plugin activation needs longer, set an explicit value:

$ docker plugin enable --timeout 120 "$PLUGIN_REF"

This option fixes a measured timeout problem, not a general repair tool. Record why the value is needed and check the daemon logs if activation still fails. A large timeout can make an automation job look stuck, so keep it bounded and appropriate to your maintenance window.

6. Recover by disabling the plugin

Enabling has a direct undo, but disabling can interrupt containers that use the plugin. Identify dependent containers and plan the interruption before doing this in a shared or production environment:

$ docker plugin disable "$PLUGIN_REF"
vendor/plugin-name:latest
$ docker plugin ls

Recovery

Confirm the plugin is no longer enabled. Do not remove it unless you have separately decided the installed plugin and its local data are no longer needed; disabling changes availability, while removing is a separate, more destructive action.

Common failures

  • "Plugin not found". Usually means the reference is wrong, the plugin is not installed on this daemon, or you are talking to a different Docker context. Recheck docker plugin ls and the active context before changing anything.
  • A timeout or activation error. Docker did not complete the request in the available time. Try the default command once more after checking daemon health, and only add --timeout when activation is known to need longer.
  • The plugin starts then fails its own operation. Inspect its declared requirements and the daemon logs rather than repeatedly enabling it.
  • An access error. This is about your Docker daemon permissions, not a missing plugin permission. Use the normal administration account or sudo per your host policy, and avoid adding users to the docker group as an ad hoc fix: membership normally grants broad control over the host's Docker daemon.

Done means

  • Command checked. The Docker client version and enable syntax were confirmed.
  • Right plugin found. The exact installed reference came from docker plugin ls.
  • Reviewed before enabling. The plugin's configuration and requested access were checked first.
  • Enabled and verified. docker plugin enable returned success and docker plugin ls shows it enabled.
  • Timeout changed for a reason. The default 30-second timeout was only changed with a known cause.
  • Recovery path known. You know to use docker plugin disable as the recovery action, with dependent workloads checked first.