Skip to main content

A simple Docker HTTP API wrapper written with asyncio and aiohttp.

Project description

PyPI version Python Versions GitHub Actions status for the main branch Code Coverage Chat on Gitter

A simple Docker HTTP API wrapper written with asyncio and aiohttp.

Installation

pip install aiodocker

Development

Create a virtualenv (either using python -m venv, pyenv or your favorite tools) and install in the editable mode with ci and dev optional dependency sets.

pip install -U pip
pip install -e '.[ci,dev]'  # in zsh, you need to escape brackets
pre-commit install

Running tests

# Run all tests
make test

# Run individual tests
python -m pytest tests/test_images.py

Building packages

NOTE: Usually you don’t need to run this step by yourself.

pip install -U build
python -m build --sdist --wheel

Documentation

http://aiodocker.readthedocs.io

Examples

import asyncio
import aiodocker

async def list_things(docker):
    print('== Images ==')
    for image in (await docker.images.list()):
        tags = image['RepoTags'][0] if image['RepoTags'] else ''
        print(image['Id'], tags)
    print('== Containers ==')
    for container in (await docker.containers.list()):
        print(f" {container._id}")

async def run_container(docker):
    print('== Running a hello-world container ==')
    container = await docker.containers.create_or_replace(
        config={
            'Cmd': ['/bin/ash', '-c', 'echo "hello world"'],
            'Image': 'alpine:latest',
        },
        name='testing',
    )
    await container.start()
    logs = await container.log(stdout=True)
    print(''.join(logs))
    await container.delete(force=True)

async def main():
    docker = aiodocker.Docker()
    await list_things(docker)
    await run_container(docker)
    await docker.close()

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiodocker-0.25.0.tar.gz (159.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aiodocker-0.25.0-py3-none-any.whl (46.4 kB view details)

Uploaded Python 3

File details

Details for the file aiodocker-0.25.0.tar.gz.

File metadata

  • Download URL: aiodocker-0.25.0.tar.gz
  • Upload date:
  • Size: 159.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for aiodocker-0.25.0.tar.gz
Algorithm Hash digest
SHA256 e5145ba622a8eceee9263c277c6d4e7ff6be4632d11765c554c80756b2d58be8
MD5 5766405ddb09819f646215459c8a60a8
BLAKE2b-256 662938e414dd1672465e481877f6e314acb9527dd2427e60ae511646e5ed4462

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiodocker-0.25.0.tar.gz:

Publisher: ci-cd.yml on aio-libs/aiodocker

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file aiodocker-0.25.0-py3-none-any.whl.

File metadata

  • Download URL: aiodocker-0.25.0-py3-none-any.whl
  • Upload date:
  • Size: 46.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for aiodocker-0.25.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0e11f39360cc69dd0a27621f15ffbf42010fb146628920e9aa8de449a9fcb0c5
MD5 e7eb4c12f22052b3acf9aebd05e4fd81
BLAKE2b-256 e47c0cf5e5008d1675183f346beffa030209ee0f640db086e39b484b53608c43

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiodocker-0.25.0-py3-none-any.whl:

Publisher: ci-cd.yml on aio-libs/aiodocker

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page