如何使用docker-py向docker容器添加参数

问题描述 投票:0回答:1

我正在使用其他参数在一个停靠者应用程序中启动一个停靠者图像。使用docker可以完成

docker run -p 8888:8888 -v ~/:/tmp/home/ my_image my_start_cmd.sh --no-browser --ip=0.0.0.0

其中my_start_cmd.sh --no-browser --ip=0.0.0.0是带参数的CMD。

如何使用相同的参数从docker-py api运行它?这是我使用docker api的原始python代码。

import docker

client = docker.from_env()
container = client.containers.run("my_image", detach=True)

for line in container.logs(stream=True):
    print (line.strip())
python python-3.x docker dockerpy
1个回答
0
投票

要简单地将参数传递给docker CMD,使用参数传递完整命令,并使用端口映射作为dict作为ports参数就足够了,如下例所示:

import docker

client = docker.from_env()
container = client.containers.run(image='my_image',
  command="start-notebook.sh --no-browser --ip=0.0.0.0",
  ports={'8888': 8888}
)

要映射卷,作为原始命令行,必须使用新的Low Level API(docker.APIClient()),如下所示:

client = docker.APIClient()
container = client.create_container(
            image='my_image',
            stdin_open=True,
            tty=False,
            command="start-notebook.sh --no-browser --ip=0.0.0.0",
            volumes=['~/', '/tmp/home/'],
            host_config=client.create_host_config(
                port_bindings={
                    8888: 8888,
                },
                binds={
                    ' ~/': {
                        'bind': '/tmp/home/',
                        'mode': 'rw',
                }
            }),
            ports=[8888],
            detach=True,
)
© www.soinside.com 2019 - 2024. All rights reserved.