考虑这个shell示例:
echo "hello" | docker run --rm -ti -a stdin busybox \
/bin/sh -c "cat - >/out"
这将执行一个busybox容器,并使用内容/out
创建一个新文件 hello
。
如何使用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'
?
答案 0 :(得分:0)
这是更新的解决方案:
#!/usr/bin/env python
import docker
# connect to docker
client = docker.APIClient()
# create a container
container = docker_client.create_container(
'busybox',
stdin_open = True,
command = 'sh -c "cat - >/out"')
client.start(container)
# attach to the container stdin socket
s = client.attach_socket(container, params={'stdin': 1, 'stream': 1})
# send text
s.send('hello')
# close, stop and disconnect
s.close()
client.stop(container)
client.wait(container)
client.remove_container(container)