我从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
,但同样的事情发生了。
答案 0 :(得分:3)
我通过删除-t并传入stdin = None来修复此问题。这是由J.F. Sebastian在评论中提出的,他不想将其作为答案发布,所以我是。