gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 19:26:56 26 4
gpt4 key购买 nike

我隔夜从Docker应用程序启动带有其他参数的CMD命令的docker镜像。
使用 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())

最佳答案

只需将参数传递给docker CMD,传递带有参数的full命令并使用端口映射作为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,
)

# To start the container and print the output
client.start(container=container.get('Id'))
print(response)

关于python - 如何使用docker-py向docker容器添加参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55477742/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com