Skip to content

Docker plugins

Don't use the constructor directly. Instead use

from python_on_whales import docker

my_docker_plugin = docker.plugin.install("vieux/sshfs:latest")
# or
my_docker_plugin = docker.plugin.inspect("vieux/sshfs:latest")
# or
list_of_plugins = docker.plugins.list()

For type hints, use this

from python_on_whales import Plugin

def print_name(plugin: Plugin):
    print(plugin.name)

Attributes

It attributes are the same that you get with the command line: docker plugin inspect ...

To get a complete description of those attributes, you can take a look at the daemon api reference page and click on "200 No error".

An example is worth many lines of descriptions.

In [1]: from python_on_whales import docker

In [2]: plugin = docker.plugin.install("vieux/sshfs:latest")

In [4]: def super_print(obj):
   ...:     print(f"type = {type(obj)}, value = {obj}")
   ...:

In [4]: super_print(plugin.id)
type = <class 'str'>, value = ae1e98b7a4099c7c4ce9bd05c1d9cb46d55e54c7f106780afb3d85c0effbf045

In [5]: super_print(plugin.name)
type = <class 'str'>, value = mochoa/s3fs-volume-plugin:latest

In [6]: super_print(plugin.enabled)
type = <class 'bool'>, value = True

In [7]: super_print(plugin.settings)
type = <class 'python_on_whales.components.plugin.models.PluginSettings'>, value = mounts=[] env=['AWSACCESSKEYID=', 'AWSSECRETACCESSKEY=', 'DEFAULT_S3FSOPTS=nomultipart,use_path_request_style'] args=[] devices=[PluginDevice()]

In [8]: super_print(plugin.plugin_reference)
type = <class 'str'>, value = docker.io/mochoa/s3fs-volume-plugin:latest

In [9]: super_print(plugin.config)
type = <class 'python_on_whales.components.plugin.models.PluginConfig'>, value = docker_version='19.03.15' description='S3FS plugin for Docker v2.0.9' documentation='https://github.com/marcelo-ochoa/docker-volume-plugins/' interface=Interface() entrypoint=['/usr/bin/tini', '--', '/s3fs-volume-plugin'] work_dir=''

Methods

Plugin

disable

disable(force=False)

Disable this plugin

enable

enable(timeout=None)

Enable this plugin

push

push(disable_content_trust=True)

Push this plugin

remove

remove(force=False)

Remove this plugin

set

set(configuration)

Set the configuration for this plugin

upgrade

upgrade(remote=None, disable_content_trust=True, skip_remote_check=False)

Upgrade this plugin