无法到达在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