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())