繁体   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