Secrets

Create a secret

import asyncio
import aiodocker

docker = aiodocker.Docker()

async def create_secret():
    secret = await docker.secrets.create(
        name="my_secret",
        data="you can not read that terrible secret"
    )
    await docker.close()
    return secret

async def create_service(TaskTemplate):
    service = await docker.services.create(
        task_template=TaskTemplate,
        name="my_service"
    )
    await docker.close()

if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    my_secret = loop.run_until_complete(create_secret())
    TaskTemplate = {
        "ContainerSpec": {
            "Image": "redis",
            "Secrets": [
            {
                "File": {
                    "Name": my_secret["Spec"]["Name"],
                    "UID": "0",
                    "GID": "0",
                    "Mode": 292
                },
                "SecretID": my_secret["ID"],
                "SecretName": my_secret["Spec"]["Name"]
            }
            ],
        },
    }
    loop.run_until_complete(create_service(TaskTemplate))
    loop.close()

Reference

DockerSecrets

class aiodocker.secrets.DockerSecrets(docker)[source]
coroutine create(self, name, data, *, b64=False, labels=None, driver=None, templating=None)[source]

Create a secret

Parameters
  • name (str) – name of the secret

  • labels (Optional[Mapping[str, str]]) – user-defined key/value metadata

  • data (str) – data to store as secret

  • b64 (bool) – True if data is already Base64-url-safe-encoded

  • driver (Optional[Mapping]) – Driver represents a driver (network, logging, secrets).

  • templating (Optional[Mapping]) – Driver represents a driver (network, logging, secrets).

Return type

Mapping[str, Any]

Returns

a dict with info of the created secret

coroutine delete(self, secret_id)[source]

Remove a secret

Parameters

secret_id (str) – ID of the secret

Return type

bool

Returns

True if successful

coroutine inspect(self, secret_id)[source]

Inspect a secret

Parameters

secret_id (str) – ID of the secret

Return type

Mapping[str, Any]

Returns

a dict with info about a secret

coroutine list(self, *, filters=None)[source]

Return a list of secrets

Parameters

filters (Optional[Mapping]) – a dict with a list of filters

Available filters:

id=<secret id> label=<key> or label=<key>=value name=<secret name> names=<secret name>

Return type

List[Mapping]

coroutine update(self, secret_id, version, *, name=None, data=None, b64=False, labels=None, driver=None, templating=None)[source]

Update a secret.

Parameters
  • secret_id (str) – ID of the secret.

  • name (Optional[str]) – name of the secret

  • labels (Optional[Mapping[str, str]]) – user-defined key/value metadata

  • data (Optional[str]) – data to store as secret

  • b64 (bool) – True if data is already Base64-url-safe-encoded

  • driver (Optional[Mapping]) – Driver represents a driver (network, logging, secrets).

  • templating (Optional[Mapping]) – Driver represents a driver (network, logging, secrets).

Return type

bool

Returns

True if successful.