GitHub
06/05/2026, 9:06 PMaiodocker from 0.26.0 to 0.27.0
Release notes
Sourced from aiodocker's releases.
0.27.0
Breaking Changes
•,images.push(),images.pull(), andimages.build()now raiseimages.import_image()when the Docker Engine reports an error in the progress stream, instead of silently returning the error chunk as part of the response. ExistingDockerStreamErrorblocks continue to catch these failures becauseexcept DockerErroris a subclass. Callers that intentionally inspected the returned list for anDockerStreamErrorkey must update their code to catch the exception instead. (#445)error
•(and itsimages.pull()alias) no longer triggers the Docker Engine's "pull all tags" behavior whenDocker.pullis omitted andtaghas no embedded tag or digest; it now pullsfrom_imageinstead. Callers that relied on the previous all-tags behavior must pass"latest"explicitly to opt back in. (#974)tag=""
• Raise the minimum requiredtoaiohttp. Earlier releases contain a>=3.11.13inside abreakblock infinallywhich Python 3.14 turns into aaiohttp/web_protocol.py`aio-libs/aiohttp#10434`#10476). The 3.10 series is end-of-life. The CI test matrix now exercisesSyntaxWarningandaiohttp~=3.11.0instead of 3.10 and 3.13. (#1038)aiohttp~=3.13.0
Bug Fixes
• Fixso the request body is JSON-encoded. The endpoint previously sent a form-encoded body with aDockerSwarm.join()header, causing the daemon to reject the request with a JSON decode error. (#288)Content-Type: application/json
• Raise(aDockerStreamErrorsubclass) when the Docker Engine reports an error inside the JSON progress stream returned byDockerError,images.push(),images.pull(), andimages.build(). Previously these calls returnedimages.import_image()from the Engine even when the upstream registry rejected the operation (e.g.HTTP 200from Nexus or Docker Hub), and the error chunk was silently included in the returned list, giving callers no way to detect the failure. (#445)403 Forbidden
• Vendorfrom aiohttp since it is deprecated and will be removed in aiohttp 4.0, and pinFlowControlDataQueueuntil the dependency is migrated off the class. (#919)aiohttp<4.0
• Fix container membership check by renaming the misspelledto__hasitem__so the__contains__operator works onininstances. (#967)DockerContainer
• Defaultto theimages.pull()tag when neither a"latest"argument nor an embedded tag/digest intagis provided, matching the behavior of thefrom_imageCLI. (#974)docker pull
• Fix the inverted condition inso aStream.__del__is emitted when a stream is garbage-collected while still holding a live, unclosed response. (#1033)ResourceWarning
• Stop closing caller-suppliedandsessionfrom meth`Docker.close`; only resources created internally are torn down, and meth`Docker.close` is now idempotent. (#1034)connector
New Features
• Accept a typedmapping infilters(e.g.DockerImages.list()), matching the style of{"dangling": ["true"]},volumes.list(), andnetworks.list(). A pre-encoded JSON string is still accepted for backwards compatibility, but emits aimages.prune()and will be removed in 1.0. (#696)DeprecationWarning
• Add pymeth:`DockerContainer.top` to expose theAPI endpoint, accepting an optionalcontainers/{id}/topargument. (#959)ps_args
Miscellaneous
• Document how to bind-mount a host directory viaandHostConfig.Binds, including bind-propagation options (HostConfig.Mounts,shared, etc.) and the host-sideslaveprerequisite -- by user`achimnol`. (#614)mount --make-shared
• Documentfor listing stopped containers, and note that any keyword argument is forwarded as a query parameter to the Docker Enginedocker.containers.list(all=True)endpoint -- by user`achimnol`. (#831)GET /containers/json
• Replace a fixed five second sleep in the container log test helper with a follow stream read, so the helper waits only as long as the daemon takes to flush log output -- by user`bdraco`. (#1020)
• Replace a fixed ten second sleep in the non-TTY attach exit test with a wait for container exit, so the test returns as soon as the container actually finishes -- by user`bdraco`. (#1023)
• Build the distribution withand runuv buildthroughtwinein CI, dropping the dedicateduvxsteps forpip installandbuild-- by user`bdraco`. (#1026)twine
• Replace legacy type annotations with Python3.10+ versions. (#1028)
• MakeChangelog Sourced from aiodocker's changelog.the default development setup: trackuvin git, switch theuv.lock,Makefile, and the README development docs totest.sh/uv sync(with a pip-based fallback documented), and convert the CIuv runandlintjobs to usetestwith the matrix Python viaastral-sh/setup-uv. (#1038)UV_PYTHON_PREFERENCE=only-system
0.27.0 (2026-05-27)
Breaking Changes
•,images.push(),images.pull(), andimages.build()now raiseimages.import_image()when the Docker Engine reports an error in the progress stream, instead of silently returning the error chunk as part of the response. ExistingDockerStreamErrorblocks continue to catch these failures becauseexcept DockerErroris a subclass. Callers that intentionally inspected the returned list for anDockerStreamErrorkey must update their code to catch the exception instead. (#445)error
•(and itsimages.pull()alias) no longer triggers the Docker Engine's "pull all tags" behavior whenDocker.pullis omitted andtaghas no embedded tag or digest; it now pullsfrom_imageinstead. Callers that relied on the previous all-tags behavior must pass"latest"explicitly to opt back in. (#974)tag=""
• Raise the minimum requiredmeltano/meltanotoaiohttp. Earlier releases contain a>=3.11.13inside abreakblock infinallywhich Python 3.14 turns into aaiohttp/web_protocol.py`aio-libs/aiohttp#10434`#10476). The 3.10 series is end-of-life. The CI test matrix now exercisesSyntaxWarningandaiohttp~=3.11.0instead of 3.10 and 3.13. (<https://redirect.github…aiohttp~=3.13.0
GitHub
06/05/2026, 10:15 PM