簡體   English   中英

在 docker-py run 中使用容器參數

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

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