Docker节点JS安装

我是全新的docker工人,我试图按照他们列出的节点js教程: https : //docs.docker.com/examples/nodejs_web_app/

我按照这个教程,一切似乎很好,直到testing部分,我不能curl到指定的端口。

$ 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' 

不知道如果我对某事感到困惑或者如何解决这个问题,有什么想法?

这是解决scheme:

  1. 像这样运行你的应用程序:

    docker run --rm -i -t -p 49160:8080 <your username>/centos-node-hello

    一个输出应该说是监听端口8080.这意味着应用程序正在运行

  2. 打开另一个docker CLIterminal并键入:

    docker-machine ls

    你会看到IP地址和端口。 例如: 192.168.99.100:<some-number>

  3. 转到浏览器并inputIP地址和导出的端口号。

    在这种情况下, 192.168.99.100:49160 ,你的网站应该上来。

希望能帮助到你。

我遇到了同样的问题,并发现这是由于boot2docker没有将我的本地主机转发到运行Docker的虚拟机。

找出运行Docker的虚拟机的IP,如下所示:

 $ boot2docker ip 

你会看到如下输出:

 $ 192.168.99.102 

并随着打印输出给你,curl你指定的IP端口。 例如:

 $ curl -i 192.168.99.102:49160 

如果您使用Mac OS X并使用Docker Toolbox安装了docker,则可以使用:

  curl $(docker-machine ip default):49160 

我可以告诉你至less如何解决这个问题。

首先检查日志,你需要容器​​ID来做到这一点。 你使用docker ps得到容器的id

运行docker <id> logs查看日志。 有可能你的命令返回一个错误。

如果你想仔细看看,你可以在容器上启动一个BASH shell。 运行这个命令docker exec -it <id> bash ,这会给你一个容器上的shell来排除故障。 shell是容器的相同实例,因此您可以排查正在运行的服务。

点击给定的命令finddocker-machine的IP地址

 $ docker-machine ls 

输出将如下所示

 NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS default * virtualbox Running tcp://192.168.99.100:2376 v1.10.3 

现在从主机运行你的应用程序

 $ curl -i 192.168.99.100:49160