如果我想将它用作 Node.js 的开发环境,可以docker run -d吗?
我真的需要下面的吗?
--interactive , -i Keep STDIN open even if not attached
--tty , -t Allocate a pseudo-TTY
如果我想将它用作 Node.js 的开发环境,可以docker run -d吗?
我真的需要下面的吗?
--interactive , -i Keep STDIN open even if not attached
--tty , -t Allocate a pseudo-TTY
在正常情况下,只有一个区别
-dit在后台
-it运行容器 在前台运行容器,会分配一个伪终端。
但是如果入口点是 bash 呢?就像ubuntu-dockerfile的情况一样。因为他们相信用户会根据他们的需要或依赖的 Dockerfile 覆盖 CMD。
# overwrite this with 'CMD []' in a dependent Dockerfile
CMD ["/bin/bash"]
所以在这种情况下,当您只指定-d您的容器时,它会在启动后立即停止。因此,您需要pseudo-terminal通过添加来分配-dit.
可以看到容器没有运行,让 check-in 停止容器。
我们可以看到容器正在运行。如果你用它运行 alpine,与 alpine 相同的情况-d也会停止。
docker run -d alpine
这将在启动后立即退出,因此-dit将分配一个伪 TTY,如文档中所述。