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

Docker教程中curl请求返回init database及404错误的原因排查

问题排查:Docker开发容器示例应用API 404异常

可能的原因及排查方向

  • API路径拼写错误
    官方文档示例的API路径大概率是复数形式的/widgets,而非你当前请求的/widget。路径不匹配会直接导致后端路由无法识别,返回404。立刻尝试执行:

    curl http://localhost:8000/widgets
    
  • 数据库初始化未实际完成
    /initdb返回"init database"仅代表接口被触发,不代表数据库表创建成功。查看rest-server容器日志,确认是否存在数据库连接或建表失败的错误:

    docker logs rest-server
    

    重点关注PostgreSQL连接超时、认证失败、SQL语句执行错误这类日志信息。

  • 容器间网络连通性故障
    两个容器虽显示运行,但可能不在同一Docker网络,导致rest-server无法访问db容器。进入rest-server容器测试网络连通性:

    # 进入rest-server容器
    docker exec -it rest-server sh
    # 测试与db容器的网络连通
    ping db
    # 尝试直接连接PostgreSQL
    psql -h db -U postgres
    

    如果ping不通或无法连接数据库,需检查容器网络配置,确保两者处于同一自定义网络或默认桥接网络且互通。

  • 后端代码路由配置错误
    若你自行构建了python-docker-dev镜像,可能存在代码路由定义错误。检查Python Web框架(如Flask)的路由代码,确认是否存在/widgets的GET请求路由。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 20:54:52