Reputation: 954
I want to write a python script that run docker containers and then show logs for that particular container, I have use some functions that are working and starting or stoping containers for me. Can somebody help me to show logs for the containers ?? I tried to use container.logs() function, but it is not working for me, i am also trying to study docker-py library ! I don't know much about python, any help will be highly appreciated !
#!/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)
Upvotes: 0
Views: 6141
Reputation: 954
@Tarun , i come through it and it solved my problem , its easy ! by the way thanks for your help man !
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()
Upvotes: 1
Reputation: 146630
You are using a old docker client. Run below to fix that
pip uninstall docker-py
pip install docker
Once done you can use something like below
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)
Upvotes: 4