无法到达在vm中的docker容器中运行的节点服务器

我有一个dockerized节点应用程序运行在具有静态地址的ubuntu-vm-主机上的容器内,但只能通过本地主机访问它。 我使用命令:sudo docker run -d -p 49160:3000 8a5ccd9f4cca启动应用程序。 当vm在没有docker的情况下运行时,我可以在vm上运行节点服务器。 当我curlhttp:// localhost:49160 /testing我得到一个回应。 但如果我试图改变它curl http://“正确的IP地址”:49160 /testing它does not工作。

当我的netstat -l在ubuntu-vm-host中时,转发端口显示出来。 如果我做:

curl http://172.17.0.1:49160/test 

这是docker0networking接口的inet地址,它通过。

netstat -l命令

对不起以前的不负责任的答案。 debugging问题

更新

首先看看应用程序是否正确运行尝试,

docker logs <container id>

如果所有通常打印出来的控制台都放在那里,

场景1如果不是 ,则使用-it标志而不是-d手动运行docker,手动启动该进程并使用curl检查以进行debugging。

 docker run -it -p 49160:3000 <image id> /bin/bash 

场景2如果它正在运行 ,请检查是否使用以下内容启用了内部ubuntu防火墙,如果是这样的话,如果您不需要禁用它。

 sudo ufw status 

禁用: sudo ufw disable允许: sudo ufw allow 49160