簡體   English   中英

使用 docker-py 在 Azure 上運行 Docker 個容器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM