Docker 命令将无法运行,除非我打开交互式 bash 终端

Docker command won't work unless I open an interactive bash terminal

我正在使用 Docker 运行 使用 nightwatch.js

进行自动浏览器测试

当我打开交互式终端时它工作正常,例如

docker run -it --rm username/image-name /bin/bash

这给了我一个 bash 提示,我 运行:

xvfb-run node nightwatch.js

一切正常。

但是当我运行:

docker run --rm username/image-name xvfb-run node nightwatch.js

它只是挂起。

打开 bash 终端和手动 运行ning 测试命令与直接 运行ning 测试命令有什么区别?当然他们都应该工作?

好的,所以我仍然不知道是什么导致了这个问题,但我有一个非常有效的解决方法:

运行 bash 作为守护进程:

CONTAINERID=$(docker run -it -d username/image-name /bin/bash)

然后使用docker exec:

docker exec $CONTAINERID xvfb-run node nightwatch.js

当然你之后需要做一些整理工作:

docker stop $CONTAINERID
docker rm $CONTAINERID