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

Docker容器运行json-server但浏览器无法访问页面求助

Docker容器中运行json-server无法通过浏览器访问的解决方法

在Docker容器中启动json-server后,浏览器访问localhost:3000提示页面无法正常工作,相关配置及情况如下:

配置详情

Dockerfile内容

FROM node:16.18.1-alpine
WORKDIR /app
COPY package.json /app
RUN npm install
EXPOSE 3000
COPY . /app
ENTRYPOINT ["npm", "start"]

package.json启动脚本

"scripts": {
  "test": "echo \"Error: no test specified\" && exit 1",
  "start": "json-server --watch db.json"
},

运行情况

  • Docker日志显示json-server已启动,默认监听容器内的localhost:3000
  • 浏览器访问localhost:3000时页面无法正常加载

预期的db.json数据

{
  "currency" : [
    {
      "id": 1,
      "rate": 117,
      "value": "usd",
      "currency": "USD",
      "selected": true
    }
  ]
}

问题原因与解决步骤

问题根源是json-server默认仅监听容器内部的localhost,外部主机无法访问该地址。按以下步骤修改即可解决:

  1. 修改启动脚本:更新package.json中的start命令,让json-server监听容器所有网卡地址
"start": "json-server --watch db.json --host 0.0.0.0"
  1. 重新构建镜像
docker build -t json-server-image .
  1. 运行容器并映射端口(确保端口映射正确,若之前运行时未加-p参数需补充)
docker run -p 3000:3000 json-server-image

修改完成后,浏览器访问localhost:3000即可正常获取json-server提供的数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 07:31:05