1:docker run -d -p 3000:3000 images
如果我在容器中启动localhost:3000
服务器,如何在我的机器浏览器中打开它,ip是什么?
我已尝试localhost:3000
或0.0.0.0:3000
。
2:我使用docker pull ubuntu
和docker run
,在更新和部署服务器之后我会通过它。现在我有一个ubuntu
和一个新图像。
下次我使用这个新图片运行容器时, shell脚本仍然需要获取,服务器也需要重新打开。
当我docker run
时,我如何提交它可以提供脚本并自行部署的图像。
感谢。
答案 0 :(得分:1)
我不太明白问题2或3,你能添加更多上下文吗?
关于使用-p
的问题,您应该可以使用http://localhost:3000/在浏览器中访问。然而,假设有几件事情是真的。
首先,您使用了-p 3000:<container-port>
- 在这一点上看起来很不错。
其次,您运行的图像暴露了端口3000(EXPOSE 3000
)。
第三,在容器中运行的服务正在监听0.0.0.0:3000
。如果它正在侦听容器中的localhost ,那么端口导出将不起作用。每个容器都有自己的localhost ,只能在容器内 。所以它需要监听容器内的所有IP,以便外部连接从容器外部到达服务。