保持容器活着的码头工人的Python SDK

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

我现在用的是泊坞SDK的Python运行我的容器。

我试图启动一个码头工人的容器中,然后运行使用API​​ exec_run(我需要退出代码)的命令。该exec_run必须一开始容器上执行。

这是我的代码:

import docker

client = docker.from_env()
container = client.containers.run('e7d8452ce5f5', command="echo starting", detach=True)
container.exec_run("echo execute command")

这就提出了一个例外:

docker.errors.APIError: 409 Client Error: Conflict ("Container b65acd40f589819f490564dcb4e25f3055d85712cb7b2834ede5f2c4d57f2da6 is not running")

我试图调用client.containers.run时,相同的异常,没有命令运行..

似乎当命令完成容器存在,尽管他们的文档中则指出,随着分离=真正运行的命令是一样的CLI泊坞窗运行-d(当使用泊坞窗运行-d容器保持活着)

如何保持容器活着为了调用exec_run它的任何想法?

python docker
1个回答
1
投票

当您使用containers.run()方法来启动一个容器,你应该使用TTY参数,设置TTY = true,然后它会保持容器活着。

import docker
client = docker.from_env()
container = client.containers.run('xxxx', command="/bin/bash", tty=True,detach=True)
© www.soinside.com 2019 - 2024. All rights reserved.