我重新编写了这个问题,以更好地传达我想要实现的目标。
如果我使用 docker CL,这对我来说非常有效。
echo "hello" | docker exec -i $3 sh -c 'cat >/text.txt'
现在我想使用 docker-py 并且到目前为止:
ex = cli.exec_create(container='nginx-ssl', cmd='cat >/text.txt')
print cli.exec_inspect(ex)
ls = cli.exec_start(exec_id=ex["Id"], tty=True)
那么如何将“hello”或任何数据传递到 exec 命令中,以便它复制 CL 命令?
顺便说一句,这在本地也可以完美运行:
p = Popen(('docker', 'exec', '-i', 'nginx-ssl', 'sh', '-c', 'cat >text.txt'), stdin=subprocess.PIPE)
p.communicate('hello\n')
p.stdin.close()