0

我想编写一个运行 docker 容器的 python 脚本,然后显示该特定容器的日志,我使用了一些正在为我工​​作和启动或停止容器的函数。有人可以帮我显示容器的日志吗?我尝试使用 container.logs() 函数,但它对我不起作用,我也在尝试研究 docker-py 库!我对python不太了解,任何帮助将不胜感激!

#!/usr/bin/python
import docker
c = docker.Client(base_url='unix://var/run/docker.sock',version='1.12',timeout=10)
ctr = c.create_container('ubuntu:16.04') 
c.start(ctr)
4

2 回答 2

4

您正在使用旧的 docker 客户端。在下面运行以解决该问题

pip uninstall docker-py
pip install docker

完成后,您可以使用以下内容

import docker

c = docker.DockerClient(base_url='unix://var/run/docker.sock',timeout=10)
ctr = c.containers.run('ubuntu:16.04',command="bash -c ' for((i=1;i<=10;i+=2)); do echo Welcome $i times; sleep 10; done'", detach=True) 
logs = ctr.logs(stream=True)

for line in logs:
    print(line)
于 2017-09-11T09:03:17.893 回答
0

@Tarun,我通过了它,它解决了我的问题,很简单!顺便感谢您的帮助!

import docker
import dockerpty

client = docker.Client()
container = client.create_container(
image='busybox:latest',
   stdin_open=True,
   tty=True,
   command='/bin/sh',
)
client.start(container)
dockerpty.PseudoTerminal(client, container).start()
于 2017-09-11T13:20:13.733 回答