【发布时间】:2020-10-29 01:12:26
【问题描述】:
我可以找到我想做的所有成分,但我不确定是否可以将它们放在一起。
最终,我希望 Python 进程能够创建和管理在 Azure 上运行的 Docker 实例。
此链接显示您可以使用 Docker API 在 Azure 上启动实例:https://docs.docker.com/engine/context/aci-integration/。它是 Beta,但我已经能够在登录后在 Azure 上运行我自己的容器,使用如下:
docker --context myacicontext run hello-world
我的问题的后半部分是从 docker-py 调用它。 docker-py 的普通用法很好而且很简单,但我在 docker-py 文档 (https://docker-py.readthedocs.io/en/stable/) 中找不到对标志“--context”的任何引用。
有没有办法配置 docker-py 使其提供 --context?
编辑:
感谢@CharlesXu为我指明了正确的方向,我现在发现下面的docker-py命令确实有效果:
docker.context.ContextAPI.set_current_context("myacicontext")
这会改变 docker cmd line 接口使用的默认上下文,所以
C:\Users\MikeSadler>docker ps -a
随后将列出在 Azure 中而不是本地运行的容器。
然而,docker.from_env().containers.list(all=all) 命令顽固地继续返回本地容器。即使您重新启动 Python 会话并从头开始创建新客户端也是如此。
结论:
在与 Docker 开发人员交谈后,截至 2020 年 10 月,docker-py 正式不支持云连接。他们目前正在使用 GRPC 协议来管理 Cloud 运行,而这可能将来会被合并到 docker-py 中。
【问题讨论】:
-
似乎在构建图像时设置了上下文:docker-py.readthedocs.io/en/1.6.0/api
-
@CasperDijkstra 我相信您正在与之交谈的 Docker 守护进程所在的位置,而不是作为 --context 赋予该守护进程的位置。我已经在容器中运行这个 Python,并且 Python 正在使用主机容器的守护进程来运行 docker。我需要在这个上下文中提供 that 守护进程...