Docker发布选项

问题描述

我试图使Vue应用程序在Docker容器内本地运行,并在发布到指定端口时出现问题。

这是我的Dockerfile

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访问该应用程序,但是该页面提供了拒绝连接错误

我的印象是publish选项应该侦听公开的端口3000并将流量转发到本地端口3000。
但是,这似乎没有发生。

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

解决方法

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

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