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

Docker容器运行正常但本地端口无法访问问题求助

问题排查与配置修正

核心问题分析

  • Django runserver 默认仅监听容器内的 127.0.0.1,宿主机无法直接访问容器内部的回环地址,必须让服务监听 0.0.0.0 才能对外暴露。
  • docker-compose.yml 存在两个问题:
    • 多阶段构建的 target: builder 无对应 Dockerfile 阶段,属于无效配置
    • YAML 缩进错误(services 前的多余空格会导致解析失败)

修正后的配置文件

Dockerfile

调整 CMD 命令,指定监听 0.0.0.0:

FROM python:3

ENV PYTHONUNBUFFERED=1

WORKDIR /code

COPY requirements.txt .

RUN pip install -r requirements.txt

COPY . .

ENV PORT=8000

EXPOSE 8000

# 修改为监听0.0.0.0,允许容器外部访问
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]

docker-compose.yml

修正缩进并移除无效的 target 配置:

services:
  web: 
    build:
      context: app  # 确保app目录是你的Django项目根目录,包含Dockerfile和代码
    ports: 
      - '8000:8000'
    # 可选:添加环境变量,确保Django识别端口
    environment:
      - PORT=8000

验证步骤

  1. 停止并清理旧容器:docker-compose down
  2. 重新构建并启动服务:docker-compose up --build
  3. 访问宿主机的 localhost:8000 或 127.0.0.1:8000 测试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 18:09:54