我是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'
不确定我是否对某些内容感到困惑或如何解决此问题,任何想法?
答案 0 :(得分:11)
这是解决方案:
运行这样的应用程序:
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
和您的网站应该会出现。
希望它有所帮助。
答案 1 :(得分:6)
我遇到了同样的问题,发现它是由于boot2docker
没有将我的 localhost 转发到运行Docker的虚拟机。
找出运行Docker的VM的IP,如下所示:
$ boot2docker ip
你会看到如下输出:
$ 192.168.99.102
通过打印输出,您可以在该IP上卷曲您指定的端口。例如:
$ curl -i 192.168.99.102:49160
答案 2 :(得分:3)
如果您使用的是Mac OS X并使用Docker Toolbox安装了docker,则可以使用:
use PayPal\Api\OpenIdSession;
$baseUrl = 'http://www.sweegy.net/Controler/callbak_controller.php';
//Get Authorization URL returns the redirect URL that could be used to get user's consent
$redirectUrl = OpenIdSession::getAuthorizationUrl(
$baseUrl,
array('openid', 'profile', 'address', 'email', 'phone',
'https://uri.paypal.com/services/paypalattributes', 'https://uri.paypal.com/services/expresscheckout'),
null,
null,
null,
$apiContext
);
echo $redirectUrl ;
答案 3 :(得分:2)
我至少可以告诉你如何解决这个问题。
首先检查日志,您需要容器ID才能执行此操作。您可以使用docker ps
运行docker <id> logs
以查看日志。您的命令可能会返回错误。
如果您想仔细查看,可以在容器上启动BASH shell。运行此命令docker exec -it <id> bash
,这将为您提供容器上的shell以进行故障排除。 shell是容器的同一个实例,因此您可以对正在运行的服务进行故障排除。
答案 4 :(得分:2)
点击命令查找docker-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