从python启动docker容器搞砸了终端设置

时间:2016-05-02 15:40:48

标签: python python-2.7 docker subprocess

我从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,但同样的事情发生了。

1 个答案:

答案 0 :(得分:3)

我通过删除-t并传入stdin = None来修复此问题。这是由J.F. Sebastian在评论中提出的,他不想将其作为答案发布,所以我是。