首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Docker教程,localhost:4000不可访问

Docker教程,localhost:4000不可访问
EN

Stack Overflow用户
提问于 2019-08-29 00:37:14
回答 2查看 944关注 0票数 2

遵循关于https://docs.docker.com/get-started/part2/的教程。

我用docker run -p 4000:80 friendlyhello启动我的码头集装箱

并查看

代码语言:javascript
运行
复制
 * Serving Flask app "app" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://0.0.0.0:8088/ (Press CTRL+C to quit)

但是,从预期的本地主机路径4000无法访问它。

代码语言:javascript
运行
复制
$ curl http://localhost:4000/
curl: (7) Failed to connect to localhost port 4000: Connection refused
$ curl http://127.0.0.1:4000/
curl: (7) Failed to connect to 127.0.0.1 port 4000: Connection refused

好吧,也许不是在我本地的主人身上。获取使用docker inspect --format '{{ .NetworkSettings.IPAddress }}' 7e5bace5f69c检索IP的容器ID

它返回172.17.0.2,但没有运气!curl继续给出相同的响应。我可以确认4000上有什么东西在运行..。

代码语言:javascript
运行
复制
 lsof -i :4000
COMMAND     PID     USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
com.docke 94812 travis   18u  IPv6 0x7516cbae76f408b5      0t0  TCP *:terabase (LISTEN)

我要把我的头发拔出来。我已经阅读了故障排除指南,可以确认*没有在代理上*不要使用自定义dns *我有问题连接到码头,而不是对接连接到我的pip服务器。

使用app.py运行python app.py服务器启动,我就可以点击它了。我遗漏了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-29 00:45:18

您是否意外地将port=8088放在app.py文件的底部?当您运行此程序时,输出的最后一行是说您的python应用程序是在端口8088而不是80上公开的。

要确认您可以运行,可以修改app.py文件并重新构建映像,或者可以运行:docker run -p 4000:8088 friendlyhello,它将把您的本地端口4000映射到容器中的8088。

票数 1
EN

Stack Overflow用户

发布于 2019-08-29 00:44:55

尝试使用以下方法运行它:

代码语言:javascript
运行
复制
docker run -p 4000:8088 friendlyhello

从日志中可以看到,您的应用程序是从端口8088启动的,但是您可以将4000连接到80,而在80上,实际上没有任何内容在监听。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57701570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档