我现在用的是泊坞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它的任何想法?
当您使用containers.run()方法来启动一个容器,你应该使用TTY参数,设置TTY = true,然后它会保持容器活着。
import docker
client = docker.from_env()
container = client.containers.run('xxxx', command="/bin/bash", tty=True,detach=True)