[英]Running Docker containers on Azure using docker-py
我可以找到我想做的事情的所有要素,但我不確定是否可以將它們放在一起。
最終,我希望一個 Python 進程能夠創建和管理在 Azure 上運行的 Docker 個實例。
此鏈接顯示您可以使用 Docker API 啟動 Azure 上的實例: https://docs.docker.com/engine/context/aci-integration/ 。 它是測試版,但我已經能夠在登錄后在 Azure 上運行我自己的容器,使用如下:
docker --context myacicontext run hello-world
我的問題的后半部分是從 docker-py 調用它。 docker-py 的香草用法很好而且 striaght-forward,但我在 docker-py 文檔中找不到任何對標志“--context”的引用( https://docker-py.readthedocs.io/en /穩定/ )。
有沒有一種方法可以配置 docker-py 以提供 --context?
編輯:
感謝@CharlesXu 給我指明了正確的方向,我現在發現下面的 docker-py 命令確實有效果:
docker.context.ContextAPI.set_current_context("myacicontext")
這改變了 docker cmd 線路接口使用的默認上下文,所以
C:\Users\MikeSadler>docker ps -a
隨后將列出在 Azure 中運行的容器,而不是在本地。
然而,docker.from_env().containers.list(all=all) 命令頑固地繼續返回本地容器。 即使您重新啟動 Python session 並從一個全新的開始創建一個新客戶端,也是如此。
結論:
與 Docker 開發人員交談后,截至 2020 年 10 月,docker-py 正式不支持雲連接。 他們目前正在使用 GRPC 協議來管理 Cloud runs,這可能會在未來被合並到 docker-py 中。
恐怕沒有辦法像命令docker --context myacicontext run hello-world
那樣做。 並且在 SDK 中也沒有像--context
這樣的參數。據我所知,您可以像這樣使用 SDK 設置當前上下文:
import docker
docker.context.config.write_context_name_to_docker_config('context_name')
但是當你使用代碼時:
client = docker.from_env()
client.containers.run('xxx')
然后它將上下文設置為default
。 這意味着您不能將容器運行到 ACI 中。 我認為這可能是一個需要修復的錯誤。 我不是很確定,但現在就是這樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.