如何发送到docker-py容器的stdin?

考虑这个shell例子:

echo "hello" | docker run --rm -ti -a stdin busybox \ /bin/sh -c "cat - >/out" 

这将执行一个busybox容器,并用内容hello创build一个新的文件/out

我将如何使用docker-py完成这个任务?

docker-py等价物:

 container = docker_client.create_container( 'busybox', stdin_open = True, command = 'sh -c "cat - >/out"' ) docker_client.start( container ) 

stdin_open = True ,但是我在哪里写'hello'

回答我自己的问题:它现在还没有实现。 这包括docker-py至less1.4版本的所有版本。

您需要在运行时将容器附加到容器,以stream式传输STDOUT / STDERR。 就是这样:

 container = docker_client.create_container('busybox', stdin_open = True, command = 'sh -c "cat - >/) docker_client.start(container) out_stream = docker_client.attach(container=container, stdout=True, stderr=True, stream=True) 

如果stream=True ,则out_stream是一个generator ,因此您可以迭代它并实时获取日志。

更多详情: http : //docker-py.readthedocs.org/zh/latest/api/