跳转到主要内容

使用asyncio和aiohttp编写的简单Docker HTTP API包装器。

项目描述

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

使用asyncio和aiohttp编写的简单Docker HTTP API包装器。

安装

pip install aiodocker

开发

创建一个虚拟环境(可以使用 python -m venvpyenv 或您喜欢的工具),并使用 cidev 可选依赖集以可编辑模式安装。

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

运行测试

# Run all tests
make test

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

构建包

注意:通常您不需要自己运行此步骤。

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

文档

http://aiodocker.readthedocs.io

示例

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

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分布

aiodocker-0.23.0.tar.gz (135.2 kB 查看哈希值)

上传时间

构建分布

aiodocker-0.23.0-py3-none-any.whl (34.7 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面