从 python 启动 docker 容器弄乱了终端设置

starting docker container from python messes up terminal settings

我正在从 subprocess.Popen 启动一个 docker 容器并且它可以工作,但是当脚本 returns 时,我的 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 建议的。塞巴斯蒂安在评论中,他不想 post 它作为答案,所以我是。