[英]Use container params in docker-py run
我在文檔中找不到的一個基本問題,如何將容器參數傳遞給 docker-py run
function:
https://docker-py.readthedocs.io/en/stable/
我們可以在終端中運行下一行並且會起作用:
docker run -e POSTGRES_DB="db" -e POSTGRES_PASSWORD="postgres" -e POSTGRES_HOST_AUTH_METHOD="trust" -e POSTGRES_USER="postgres" postgis/postgis -c max_worker_processes=15
如果我們嘗試使用 docker-py,我們可以這樣做:
import docker
client = docker.from_env()
container = client.containers.run(
"postgis/postgis:latest",
environment = {
'POSTGRES_DB': "db",
'POSTGRES_USER': "postgres",
'POSTGRES_PASSWORD': "password",
'POSTGRES_HOST_AUTH_METHOD': "trust"
}
)
在那里我們可以將幾乎所有參數發送到容器創建,但仍然找不到如何傳遞-c max_worker_processes=15
。 我們如何將該參數發送到容器?
run
function 有一個command
參數,但不起作用。 我嘗試將其連接到圖像名稱,但沒有。 我也找不到例子 D:
謝謝!
docker run
命令中鏡像名稱后出現的任何內容都被解釋為容器設置的“命令”部分; 它覆蓋了 Dockerfile CMD
,它可能被圖像的ENTRYPOINT
特殊解釋。 在各種 Docker SDK 中,您會將其作為command
參數傳遞。
具體來說,在 docker-py 中, client.containers.run()
方法采用command
關鍵字參數。 雖然文檔說它接受字符串或列表,但如果您自己將命令拆分為單詞列表並將該列表作為 arguments 傳遞,您將獲得最一致的行為。(組裝一個潛在的重大安全風險通過字符串插值的命令行,並使用列表也可以避免其中的許多問題。)
container = client.containers.run(
"postgis/postgis:latest",
command=['-c', 'max_worker_processes=15'],
environment={...}
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.