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

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

Enable an Installed Docker Plugin and Verify Its State

You will finish with an installed Docker plugin enabled, its state checked, and a clear way to undo the change. 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 Docker daemon. The 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 indicates that it is disabled. Docker's own example uses an installed plugin with a name such as vendor/plugin-name:latest, but you must use the name returned by your daemon. Do not guess a registry reference or enable a plugin merely 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 the plugin's 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 begin using it. Do not run it in the middle of a 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"

Do not solve a plugin failure by granting all permissions or changing host security controls without reviewing the plugin first. The command's timeout 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. The useful result is the matching plugin name with an enabled state. For a more detailed check, inspect the plugin again:

$ docker plugin inspect "$PLUGIN_REF"

Do not treat a successful enable response as proof that a volume, network or authorisation workflow is correct. Run the smallest harmless operation that exercises the plugin's intended interface, using the plugin vendor's documented test. Keep that test separate from production workloads and verify its result before moving on.

5. Set a longer request 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 is useful for a measured timeout problem, not as a general repair. Record why the value is needed and check the daemon logs if activation still fails. A large timeout can make an automation job appear stuck, so keep it bounded and choose a value appropriate to your maintenance window.

6. Recover by disabling the plugin

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

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

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

Common failures

A "plugin not found" error 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 means Docker did not complete the request in the available time. Try the default command once more after checking daemon health. Use --timeout only when the activation is known to need longer. If the plugin starts and then fails its intended operation, inspect the plugin's declared requirements and daemon logs rather than repeatedly enabling it.

An access error is about your Docker daemon permissions, not a missing plugin permission. Use the normal Docker administration account or sudo according to your host policy. 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

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