Docker 发布选项

Docker Publish Option

我正在尝试在 Docker 容器中本地获取一个 Vue 应用程序 运行,但在发布到指定端口时遇到问题。

这是我的Docker文件

FROM node:lts-alpine

RUN mkdir -p /app
COPY . /app
WORKDIR /app

RUN npm install
RUN npm run build

EXPOSE 3000

CMD ["npm", "start"]

在我项目的根目录下运行

docker build --tag projectname .

这成功地创建了一个我应该能够 运行 在容器中的图像。
但是,每当我 运行 以下命令时,我都无法通过任何端口从浏览器访问容器。

docker run -p 3000:3000 --name projectname projectname

输出显示了一些关于拆分代码以减小大小的建议,但没有错误,它指出我应该能够从 http://localhost:8080 访问该应用程序,但该页面提供了一个连接拒绝错误。

我的印象是发布选项应该监听暴露的端口 3000 并将流量转发到本地端口 3000。
然而,这似乎并没有发生。

我 运行宁 Docker Windows 这可能也是问题的一部分。

尝试 运行 此命令 docker run -p 3000:8080 --name projectname projectname,然后在 docker 主机上的 localhost:3000 访问应用程序。

如果可行,则要么在您的 Dockerfile 中将 EXPOSE 3000 更新为 EXPOSE 8080,要么在您的应用程序内的端口 3000 而不是 8080 上启动您的 http 服务器。第二步是可选的,但它会帮助其他人理解从该图像启动的容器应该侦听 Dockerfile 中提到的端口。