Secrets

class aiodocker.secrets.DockerSecrets(docker)[source]
async create(name: str, data: str, *, b64: bool = False, labels: Mapping[str, str] | None = None, driver: Mapping | None = None, templating: Mapping | None = None) Mapping[str, Any][source]

Create a secret

Parameters:
  • name – name of the secret

  • labels – user-defined key/value metadata

  • data – data to store as secret

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

  • driver – Driver represents a driver (network, logging, secrets).

  • templating – Driver represents a driver (network, logging, secrets).

Returns:

a dict with info of the created secret

async delete(secret_id: str) bool[source]

Remove a secret

Parameters:

secret_id – ID of the secret

Returns:

True if successful

async inspect(secret_id: str) Mapping[str, Any][source]

Inspect a secret

Parameters:

secret_id – ID of the secret

Returns:

a dict with info about a secret

async list(*, filters: Mapping[str, str | Sequence[str]] | None = None) list[Mapping][source]

Return a list of secrets

Parameters:

filters – a dict with a list of filters

Available filters:

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

async update(secret_id: str, version: str, *, name: str | None = None, data: str | None = None, b64: bool = False, labels: Mapping[str, str] | None = None, driver: Mapping | None = None, templating: Mapping | None = None) bool[source]

Update a secret.

Parameters:
  • secret_id – ID of the secret.

  • name – name of the secret

  • labels – user-defined key/value metadata

  • data – data to store as secret

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

  • driver – Driver represents a driver (network, logging, secrets).

  • templating – Driver represents a driver (network, logging, secrets).

Returns:

True if successful.

Example

Create a secret

import asyncio
import aiodocker

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

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

async def main():
    docker = aiodocker.Docker()
    my_secret = await create_secret(docker)
    task_template = {
        "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"]
                },
            ],
        },
    }
    service = await create_service(docker, task_template)
    print(service)
    await docker.close()

if __name__ == "__main__":
    asyncio.run(main())