基本上我有2个问题:
这是我尝试过的:
import docker
dockerClient = docker.from_env()
print dockerClient.containers.run(image='centos7.5', command='./pmml2luastatic')
答案 0 :(得分:1)
1)根据documentation函数,运行不打印,但返回stdout和stderr
根据stdout和stderr参数的值,容器日志是STDOUT,STDERR还是两者都记录。
仅当使用json文件或日志记录驱动程序时,才可以读取STDOUT和STDERR。因此,如果您不使用这些驱动程序,则将返回None对象。 See the Engine API文档以获取全部详细信息。
对于显示日志,我建议考虑在子进程中运行容器,而不是通过API运行。
import subprocess
subprocess.run("docker run --rm -i centos7.5 ./pmml2luastatic", shell=True)
2)这样,您还可以通过CompletedProcess对象捕获返回代码
import subprocess
result = subprocess.run("docker run --rm -i centos7.5 ./pmml2luastatic", shell=True)
if result.returncode != 0:
print("Error")
我将考虑使用API与远程计算机进行通信。
无论如何,如果您将使用API来运行容器,请使用stream
参数。
stream(布尔)–如果true和detach为false,则返回日志生成器而不是字符串。如果detach为true,则忽略。默认值:False。