我加载了一个简单的docker ubuntu镜像。启动容器。在该容器中安装curl。
在码头主机上。我写了两个基于python的Web服务器。一个基于SimpleHTTPServer(托管在端口4000上)和一个基于falcon(在5000上使用gunicorn托管)。
可以从容器shell访问基于python的Web服务器:
root@430a51680859:/# curl http://172.17.0.1:4000
<!DOCTYPE>
<html>
<head>
<title>Hello World</title>
</head>
<body>
<h1>Welcome</h1>
<p>Hello World</p>
</body>
</html>
但枪手只是失败了:
root@430a51680859:/# curl http://172.17.0.1:5000/quote
curl: (7) Failed to connect to 172.17.0.1 port 5000: Connection refused
答案 0 :(得分:1)
Gunicorn默认只侦听localhost(127.0.0.1),而SimpleHTTPServer默认侦听所有接口。为了能够访问Gunicorn提供的页面,使用-b 0.0.0.0:5000
(在所有界面上侦听)或-b 172.17.0.1:5000
(仅在docker0
上侦听,可从Docker容器访问)运行Gunicorn。