我成功地将Docker镜像部署到VM示例。如何向它发送网络请求?
代码是一个简单的Node. js/ express应用程序,只需res.json()
“Hi there!“在根路径上。它正在监听端口3000。
我认为部署过程是这样的:
1.从Node. js/ express src构建Docker镜像。
1.在本地命令行上运行容器,正确暴露端口。它在当地工作。
1.用正确的项目ID /区域标记图像。
1.推到VM。我想我推了图像,而不是容器。有问题吗?
- SSH进入VM。运行
docker ps
并查看运行的容器是否具有正确的图像标记
1.使用命令行curl
(我使用zsh终端)以及浏览器来检查网络请求。获取connection refused error
作为一个初学者,谷歌防火墙设置似乎是开放的--我已经允许所有端口上的ingress。
我也想在某个时候允许出口,但现在我的问题是,每当我试图联系IP地址时,无论是用我的Web浏览器还是从命令行curl
,我都会得到一个connection refused error
。
看起来问题最有可能与防火墙有关,我已经确认我的Docker容器正在VM中运行(源代码在我的机器上工作)。
编辑:
更新防火墙规则,端口3000入口:
2条答案
按热度按时间wrrgggsh1#
您需要一个允许流量到达
tcp:3000
的防火墙规则。最好是从你的主机的IP(谷歌“什么是我的IP?“并使用它),但现在你可以(暂时)使用任何IP
0.0.0.0/0
。防火墙规则也只能应用于运行容器的VM,但我一开始并不担心这个问题。
zxlwwiss2#
如果你也遇到了这个问题:>
Docker Nginx可以从主机访问,但不能从互联网访问:(
升级后,Nginx Docker可以从互联网上访问:)
升级后我注意到的唯一变化是额外的端口导出:
:::7070->80/tcp