从 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 它作为答案,所以我是。
我正在从 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 它作为答案,所以我是。