python docker apis container.run不将输出打印到控制台

时间:2019-02-14 01:54:32

标签: docker dockerpy

我拉了高山图片 我已经建立了容器 我正在尝试运行该映像,但是在控制台上看不到任何输出,有人怎么了? 如果我使用docker run运行,我可以看到输出

Python版本是2.7.10

dockerClient = docker.from_env()
image = dockerClient.images.pull(alpine)
dockerClient.images.build(path = "build/", tag="alpine_tests")
dockerClient.containers.run('alpine_tests', 'pwd')

1 个答案:

答案 0 :(得分:0)

如果您真的想立即查看信息,则应在CLI中使用docker build,在Python中使用subproccess.call(['docker', 'build'])

使用Python SDK时,成功时始终不需要stdout和stderr消息。仅当崩溃或失败时,消息才是好消息。

# docker build
client = docker.from_env()
try:
    client.images.build(
        path='build/',
        tag='alpine_tests',
    )
except docker.errors.BuildError as exc:
    for log in exc.build_log:
        msg = log.get('stream')
        if msg:
            print(msg, end='')
    raise

# docker push
ret = client.images.push(alpine_tests)
last_line = ret.splitlines()[-1]
info = json.loads(last_line)
error = info.get('error')
if error:
    print(error)
    exit(1)