aiodocker: AsyncIO bindings for

PyPI version Python Versions Build Status Code Coverage Chat on Gitter

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


pip install aiodocker


import asyncio
import aiodocker

async def list_things():
    docker = aiodocker.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}")
    await docker.close()

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

if __name__ == '__main__':
    loop = asyncio.get_event_loop()

Source code

The project is hosted on GitHub:

Please feel free to file an issue on the bug tracker if you have found a bug or have some suggestion in order to improve the library.

Communication channels

aio-libs google group:!forum/aio-libs

Feel free to post your questions and ideas here.

Gitter Chat

We support Stack Overflow. Please add python-asyncio tag to your question there.


Please follow the Contribution Guide.

Author and License

The aiodocker package is written by Andrew Svetlov.

It’s Apache 2 licensed and freely available.

Indices and tables