use*_*387 15 node.js docker boot2docker
我是docker的新手,我正在尝试按照他们列出的节点js教程:https://docs.docker.com/examples/nodejs_web_app/
我遵循这个教程,一切似乎工作得很好,直到测试部分,我不能卷曲到指定的端口.
$ curl -i localhost:49160
curl: (7) Failed to connect to localhost port 49160: Connection refused
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
21e727bc5a7d username/docker-test "node /src/index.js" 13 minutes ago Up 13 minutes 0.0.0.0:49160->8080/tcp gloomy_heisenberg
$ docker logs 21e727bc5a7d
Running on localhost:8080
$ docker exec -it 21e727bc5a7d bash
[root@21e727bc5a7d /]# netstat -tulpn
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 1/node'
Run Code Online (Sandbox Code Playgroud)
不确定我是否对某些事情感到困惑或如何解决这个问题,任何想法?
小智 12
这是解决方案:
像这样运行你的应用程序:
docker run --rm -i -t -p 49160:8080 <your username>/centos-node-hello
输出应该说是侦听端口8080.这意味着应用程序正在运行
打开另一个docker CLI终端并键入:
docker-machine ls
您将看到IP地址和端口.例:192.168.99.100:<some-number>
转到浏览器并键入IP地址和导出的端口号.
在这种情况下,192.168.99.100:49160您的网站应该会出现.
希望能帮助到你.
小智 6
我遇到了同样的问题,发现它是由于boot2docker没有将我的localhost转发到运行Docker的虚拟机.
找出运行Docker的VM的IP,如下所示:
$ boot2docker ip
Run Code Online (Sandbox Code Playgroud)
你会看到如下输出:
$ 192.168.99.102
Run Code Online (Sandbox Code Playgroud)
通过打印输出,它可以让您在该IP上卷曲您指定的端口.例如:
$ curl -i 192.168.99.102:49160
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2269 次 |
| 最近记录: |