无法访问在vm中的docker容器中运行的节点服务器

时间:2017-04-28 01:17:00

标签: node.js curl docker ip

我在一个带有静态地址的ubuntu-vm-host上的容器内运行了一个dockerized node app,但只能通过localhost访问它。我使用命令: sudo docker run -d -p 49160:3000 8a5ccd9f4cca 启动应用程序。当我们在没有docker的vm中运行时,我可以毫不费力地访问vm上的运行节点服务器。 当我卷曲http://localhost:49160/test时,我得到了回复。但如果我尝试将其更改为curl http://"正确的IP地址":49160 / test它不起作用。

当i netstat -l在ubuntu-vm-host中时,转发端口显示。 如果我这样做:

curl  http://172.17.0.1:49160/test

这是docker0网络接口的inet地址,它通过。

netstat -l command

1 个答案:

答案 0 :(得分:0)

对于之前不负责任的回答感到抱歉。调试问题

<强>已更新

首先看看应用是否正常运行,尝试

docker logs <container id>

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

方案1 如果它不是,请使用-it标志而不是-d运行docker,然后手动启动进程并检查卷曲以进行调试。< / p>

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

方案2 如果正在运行,请检查内部ubuntu防火墙是否已启用,如果是,如果您不需要,请将其禁用。

sudo ufw status

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