如果我想将其用作Node.js的开发环境,可以只使用docker run -d
吗?
我真的需要下面的东西吗?
--interactive , -i Keep STDIN open even if not attached
--tty , -t Allocate a pseudo-TTY
答案 0 :(得分:0)
在正常情况下,只有一个区别
-dit
在后台运行容器
-it
在前台运行容器,并将分配一个伪终端。
但是,如果入口点是bash怎么办?就像ubuntu-dockerfile一样。因为他们相信用户会根据需要或依赖的Dockerfile覆盖CMD。
# overwrite this with 'CMD []' in a dependent Dockerfile
CMD ["/bin/bash"]
因此,在这种情况下,当您仅指定-d
时,容器将在启动后立即停止。因此,您需要通过添加pseudo-terminal
来分配-dit
。
如您所见,该容器未运行,请让检入已停止的容器。
我们可以看到该容器正在运行。如果您使用-d
进行高山运动,则高山运动也会停止。
docker run -d alpine
此操作将在启动后立即退出,因此-dit
将按照文档中的说明分配伪TTY。