You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署Falcon应用后无法访问健康检查接口的问题排查

排查Docker容器健康检查访问失败的可能原因

1. 确认容器端口映射配置

运行容器时必须通过-p参数完成宿主机与容器的端口映射,否则宿主机无法直接访问容器内的服务。正确的启动命令示例:

docker run -p 80:80 你的镜像名称

如果未添加-p 80:80,宿主机的80端口和容器内部的80端口处于网络隔离状态,自然无法访问。

2. 先在容器内部验证服务可用性

先进入容器内部测试,排除服务本身的问题:

docker exec -it 你的容器ID /bin/bash
# 在容器内执行请求
curl http://0.0.0.0:80/pozice_skladApi/v1/healthcheck

如果容器内访问正常,说明问题出在宿主机与容器的网络映射;如果容器内也访问失败,直接排查Python服务代码。

3. 核对路由定义的准确性

  • 检查路由路径的大小写:Python Web框架(如Flask-RESTful、FastAPI)的路由通常大小写敏感,确保代码中定义的/pozice_skladApi/v1/healthcheck和请求路径完全一致,比如不要出现代码里是小写api但请求用大写Api的情况。
  • 确认Ping类的on_get方法正确返回200状态码,示例代码参考:
from flask_restful import Resource
from flask import make_response

class Ping(Resource):
    def on_get(self):
        return make_response("OK", 200)

# 确保路由绑定语句无拼写错误
api.add_resource(Ping, '/pozice_skladApi/v1/healthcheck')

4. 检查容器内服务的监听地址

进入容器后,用以下命令确认服务是否真的监听0.0.0.0:80:

ss -tulpn | grep 80

如果显示监听的是127.0.0.1:80,说明服务仅允许容器内部本地访问,外部(包括宿主机)无法连接,需要修改服务启动配置,强制绑定0.0.0.0。

5. 排查宿主机网络限制

  • Linux系统:检查ufw或firewalld是否开放了80端口;
  • Windows/macOS:确认Docker Desktop的网络设置未限制端口访问,且系统防火墙未拦截相关请求。

内容的提问来源于stack exchange,提问作者vojtam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 10:55:19