dockerpy exec_start如何将输出流式传输到stdou

2024-06-14 03:13:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用docker py执行一些长进程 我的问题是我不能看到我所做的事情的结果。。。在

如何将docker exec的输出直接流式传输到stdout?还是更适合伐木?在

我看到有一个“stream”参数,但我不知道如何使用返回的生成器。。。在

        exec_c=self.docker.exec_create(myContainer,e["cmd"])
        output=self.docker.exec_start(exec_c)
        self.logger.info(output)

http://docker-py.readthedocs.org/en/latest/api/?highlight=exec#exec_create


Tags: dockerpyselfcmdoutputstream参数进程
2条回答

如何获得stdout输出的示例。默认的Stdout为true o complete Stdout=true

下面是python代码:

from docker import Client
cli = Client(base_url='unix://var/run/docker.sock')

id_container = '14484253f0a8'
cli.start(id_container)
cmds='ls' #comand to execute

exe = cli.exec_create(container=id_container, cmd=cmds)
exe_start= cli.exec_start(exec_id=exe, stream=True)

for val in exe_start:
    print (val)

我希望有帮助。在

下面是我用来从构建命令获取响应的代码。您应该能够调整此代码以满足exec\u start的需要。在

创建StreamLineBuilder生成器:

import json
class StreamLineBuildGenerator(object):
    def __init__(self, json_data):
        self.__dict__ = json.loads(json_data)

然后使用此生成器来解析流:

^{pr2}$

相关问题 更多 >