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

Windows 11中Docker容器运行正常但localhost端口无法连接求助

问题排查:Windows 11下Docker容器启动成功但无法访问localhost:3000

你在Windows 11环境中运行Rails+PostgreSQL的Docker容器,执行docker compose up后控制台显示服务器已运行,但访问localhost:3000时提示无法连接。你的配置文件如下:

Dockerfile配置

FROM ruby:3.1.2

RUN apt-get update -qq && apt-get install -y nodejs postgresql-client
WORKDIR /test
COPY Gemfile /test/Gemfile
COPY Gemfile.lock /test/Gemfile.lock
RUN bundle install
EXPOSE 3000

COPY entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/entrypoint.sh
ENTRYPOINT ["entrypoint.sh"]
EXPOSE 3000

CMD ["rails", "server", "-b", "0.0.0.0"]

docker-compose.yml配置

services:
  db:
    image: postgres:14.8
    volumes:
      - ./tmp/db:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: 12345
  web:
    build: .
    command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
    volumes:
      - .:/test
    ports:
      - "3000:3000"
    depends_on:
      - db

以下是具体排查步骤:

  • 检查WSL 2网络配置
    Windows下Docker默认使用WSL 2后端,直接访问localhost可能存在网络映射问题。可以尝试:

    1. 打开WSL终端(如Ubuntu),执行hostname -I获取WSL分发版的IP地址
    2. 使用http://<WSL_IP>:3000访问服务
      同时确认Docker Desktop的WSL集成已开启(设置路径:Settings -> Resources -> WSL Integration)
  • 排查端口冲突
    确认本地3000端口未被其他程序占用:

    1. 打开Windows命令提示符,执行netstat -ano | findstr :3000
    2. 如果有结果,通过任务管理器杀掉对应PID的进程;或者修改docker-compose.yml的端口映射,比如改为"3001:3000",之后访问localhost:3001
  • 验证容器内服务监听地址
    确保Rails服务确实监听0.0.0.0而非127.0.0.1:

    1. 执行docker exec -it <web容器名称> bash进入容器(容器名称可通过docker ps查看)
    2. 在容器内执行netstat -tulpn | grep 3000,检查输出是否包含0.0.0.0:3000
      同时确认启动日志中是否有Listening on http://0.0.0.0:3000的字样
  • 排查防火墙/安全软件拦截
    临时关闭Windows Defender防火墙或第三方安全软件,测试是否能正常访问。如果可以,需添加入站规则,允许3000端口的流量通过。

  • 检查ENTRYPOINT脚本
    你的entrypoint.sh可能存在问题,导致Rails服务未正确启动:

    1. 暂时注释Dockerfile中的ENTRYPOINT ["entrypoint.sh"]行,重新构建镜像(docker compose build)
    2. 重启容器(docker compose up),测试是否能访问
      如果注释后服务正常,说明entrypoint.sh脚本存在错误,需检查脚本逻辑(比如是否正确等待PostgreSQL就绪,或有无其他启动失败的情况)

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

相关产品推荐
方舟 Agent Plan

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

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