[英]How to create a daemon container with interface terminal using docker-py?
[英]How to add parameters to docker container using docker-py
我在一夜之間從一個 docker 應用程序啟動一個 docker 鏡像,這個 CMD 命令帶有附加參數。 使用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,傳遞帶有參數的完整命令,並使用端口映射作為 dict 作為端口參數就足夠了,如下例所示:
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}
)
要映射卷,作為原始命令行,必須按如下方式使用新的低級 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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.