Docker API client for asyncio
Project description
AsyncIO bindings for docker.io
A simple Docker HTTP API wrapper written with asyncio and aiohttp.
Installation
pip install aiodocker
Documentation
Examples
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(
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)
await docker.close()
if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.run_until_complete(list_things())
loop.run_until_complete(run_container())
loop.close()
Changes
0.20.0 (2021-07-21)
Bugfixes
Accept auth parameter by run() method; it allows auto-pulling absent image from private storages. (#295)
Fix passing of JSON params. (#543)
Fix issue with unclosed response object in attach/exec. (#604)
0.19.1 (2020-07-09)
Bugfixes
Fix type annotations for exec.start(), docker.images.pull(), docker.images.push(). Respect default arguments again.
0.19.0 (2020-07-07)
Features
Run mypy checks on the repo in the non-strict mode. (#466)
Add container.rename() method. (#458)
Bugfixes
Changed DockerNetwork.delete() to return True if successful (#464)
0.18.9 (2020-07-07)
Bugfixes
Fix closing of the task fetching Docker’s event stream and make it re-openable after closing (#448)
Fix type annotations for pull() and push() methods. (#465)
Misc
#442
0.18.8 (2020-05-04)
Bugfixes
Don’t send null for empty BODY.
0.18.7 (2020-05-04)
Bugfixes
Fix some typing errors
0.18.1 (2020-04-01)
Bugfixes
Improve the errror message when connection is closed by Docker Engine on TCP hijacking. (#424)
0.18.0 (2020-03-25)
Features
Improve the error text message if cannot connect to docker engine. (#411)
Rename websocket() to attach() (#412)
Implement docker exec protocol. (#415)
Implement container commit, pause and unpause functionality. (#418)
Implement auto-versioning of the docker API by default. (#419)
Bugfixes
Fix volume.delete throwing a TypeError. (#389)
0.17.0 (2019-10-15)
Bugfixes
Fixed an issue when the entire tar archive was stored in RAM while building the image. (#352)
0.16.0 (2019-09-23)
Bugfixes
Fix streaming mode for pull, push, build, stats and events. (#344)
0.15.0 (2019-09-22)
Features
Add support for Docker 17.12.1 and 18.03.1 (#164)
Add initial support for nodes. (#181)
Add initial support for networks. (#189)
Add support for docker info ando docker swarm join. (#193)
Add restart method for containers. (#200)
Feature: Add support for registry-auth when you create a service. (#215)
Feature: Add support for docker save and load api methods (#219)
Pass params to docker events. (#223)
Add ability to get a Docker network by name or ID. (#279)
Always close response after processing, make .logs(…, follow=True) async iterator. (#341)
Bugfixes
Fix: Set timeout for docker events to 0 (no timeout) (#115)
Fix: prevents multiple listener tasks to be created automatically (#116)
Fix: if container.start() fails user won’t get the id of the container (#128)
Improve logging when docker socket not available. (#155)
Fix current project version. (#156)
Fix update out of sequence. (#169)
Remove asserts used to check auth with docker registry. (#172)
Fix: fix to parse response of docker load method as a json stream (#222)
Fix: Handle responses with 0 or missing Content-Length (#237)
Fix: don’t remove non-newline whitespace from multiplexed lines (#246)
Fix docker_context.tar error (#253)
Deprecations and Removals
docker.images.get has been renamed to docker.images.inspect, remove support for Docker 17.06 (#164)
Drop Python 3.5 (#338)
Drop deprecated container.copy() (#339)
Misc
#28, #167, #192, #286
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for aiodocker-0.20.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c44e0dd379ff36d07deab865d83b157d6c51e17da2210d470ba5b3e5c30b1f41 |
|
MD5 | c489fd7f61d730e5adfc792cbfdbd1cc |
|
BLAKE2b-256 | ad140289574e33adf0bdd31f80faec42897287258e1914c08fdcada1c8b9ded9 |