我正在从subprocess.Popen启动一个docker容器,它可以工作,但是当脚本返回时,我的shell的终端设置被搞砸了.没有回声.我可以在终端中使用tset修复此问题,但我不想这样做.这里有没有人和docker合作过并且已经解决了这个问题?
这是我启动容器的方式:
cmd = ['sudo',
'docker',
'run',
'-t',
'-i',
'elucidbio/capdata:v2',
'bash'
]
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
我尝试用无限循环替换bash并使用nohup,但是发生了同样的事情.
解决方法:
我通过删除-t并传入stdin = None来解决此问题.塞巴斯蒂安·J·F·塞巴斯蒂安(J.F. Sebastian)在评论中建议了这一点,他不想将其发布为答案,所以我同意.