Docker部署vue教程指南

准备工作:先装好Docker和Node.js

在开始之前,确保服务器或本地电脑已安装 Docker(建议 20.10 以上版本)和 Node.js(建议 16 以上)。
如果还未安装,分别执行以下命令(以 Ubuntu / Debian 为例):

  • 安装 Docker:curl -fsSL https://get.docker.com | bash 然后 sudo usermod -aG docker $USER 并重新登录。
  • 安装 Node.js:curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - 然后 sudo apt install -y nodejs。

检查版本:docker --version 和 node --version 确认正确输出。

第一步:创建并构建Vue项目

打开终端,执行 npm create vue@latest my-vue-app 创建一个 Vue 3 项目(按需选择配置,新手可直接回车使用默认)。
进入目录:cd my-vue-app。
运行 npm install 安装依赖,然后用 npm run build 生成生产文件。
打包完成后,项目目录下会出现 _dist_ 文件夹,里面就是我们要部署的静态资源。

第二步:编写 Dockerfile 和 Nginx 配置

在项目根目录新建一个文件 Dockerfile,内容如下:

# 使用 Nginx 作为基础镜像
FROM nginx:stable-alpine

# 将构建后的静态文件复制到 Nginx 默认目录
COPY dist /usr/share/nginx/html

# 复制自定义 Nginx 配置(可选)
COPY nginx.conf /etc/nginx/conf.d/default.conf

# 暴露 80 端口
EXPOSE 80

# 启动 Nginx
CMD ["nginx", "-g", "daemon off;"]

再创建 nginx.conf 文件,写入以下简单配置(用于处理单页应用的路由):

server {
    listen 80;
    server_name localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html;  # 防止刷新 404
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}
注意:try_files 这行很关键,Vue Router 的 history 模式需要它才能正确处理路由。

第三步:构建镜像并运行容器

在项目根目录执行:docker build -t my-vue-app .(注意最后有个点)。
等待构建成功后,运行容器:docker run -d -p 8080:80 --name vue-app my-vue-app。
现在可以通过 http://localhost:8080 访问你的 Vue 项目了。

常见问题与避坑指南

  • 构建报错 dist 不存在:确认之前已执行过 npm run build,且项目根目录下有 dist 文件夹。
  • 访问页面空白或控制台 404:检查 Dockerfile 中是否正确复制 dist 到 /usr/share/nginx/html,以及 nginx.conf 的 try_files 配置是否添加。
  • 端口被占用:运行 docker ps 查看已有容器,或修改 -p 参数为其他端口,如 -p 3000:80。
  • 想修改端口映射:先停止容器 docker stop vue-app,删除 docker rm vue-app,再用新端口启动。
  • 生产环境建议使用 nginx:alpine 而非 stable-alpine:stable-alpine 体积更小,但 alpine 更轻量;两者均可。重点:生产环境一定要关闭 Nginx 的 autoindex 并设置适当的安全头。

验证部署是否成功

  1. 打开浏览器访问 http://你的服务器IP:8080,正常显示 Vue 首页。
  2. 点击页面内链接跳转,URL 变化且正常显示组件(说明 history 模式路由生效)。
  3. 直接刷新页面(按 F5),不出现 404 错误。
  4. 执行 docker logs vue-app,确认无错误日志。

如果你正在处理 Docker部署vue,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。

分享到:
上一篇
新手也能学会的Linux服务器网络流量控制实战
下一篇
服务器运维工具使用技巧:零基础快速上手教程
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意