Python3:无法在子进程为Docker命令打开的外壳中运行命令

时间:2019-02-25 11:06:27

标签: python-3.x docker subprocess

我有一个Python3脚本,需要清除某些Docker容器的日志。 根据{{​​3}},唯一的方法是使用电源外壳,使用映像连接到Docker VM并清除日志。

我能够手动完成此操作,但是尝试从脚本中运行它时出现错误。这是我的代码:

connect_to_img = "docker run --net=host --ipc=host --uts=host --pid=host -it --security-opt=seccomp=unconfined --rm -v /:/host alpine /bin/sh"
p = subprocess.Popen(connect_to_img, shell=True)
chg_permissions_cmd = "chroot /host"
p.communicate(chg_permissions_cmd)
delete_logs_cmd = "find /var/lib/docker/containers/ -type f -name '*.log' -delete"
p.communicate(delete_logs_cmd)

执行代码后,

 p.communicate(chg_permissions_cmd)  

运行我得到

 the input device is not a TTY.  If you are using mintty, try prefixing the command with 'winpty'

我尝试使用winpty,或将stdin用作解决方法,但未成功。

如何从Python向TTY shell发送指令?

0 个答案:

没有答案