如果我想将它用作 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,如文档中所述。