惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
B
Blog RSS Feed
Microsoft Security Blog
Microsoft Security Blog
Y
Y Combinator Blog
N
Netflix TechBlog - Medium
M
MIT News - Artificial intelligence
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
B
Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
C
Check Point Blog
The GitHub Blog
The GitHub Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
P
Proofpoint News Feed
Martin Fowler
Martin Fowler
大猫的无限游戏
大猫的无限游戏
GbyAI
GbyAI
博客园_首页
A
About on SuperTechFans
Blog — PlanetScale
Blog — PlanetScale
人人都是产品经理
人人都是产品经理
T
Tailwind CSS Blog
aimingoo的专栏
aimingoo的专栏
T
The Blog of Author Tim Ferriss
The Cloudflare Blog

博客园 - 炎峰森林影

安装 OpenClaw(PowerShell) 安装卸载 WSL [SSL]免费SSL证书,自动续期 [Python, PHP]存储单位转换 [MySQL]递归生成数据行 解决CSDN不登录就不能复制代码的问题 [JS]判断值为空 [BAT]批量提交到Git [网络搭建]Centos8 + Docker-CE + K8S(kubeadm) [Vue]对Vue,Vuex.store,mixins理解 [Android]keytool创建密钥 [JS]JavaScript this 的六道坎 [MSSQL]跨数据库查询 [Tensorflow]统计功效解析 [Tensorflow]设置双击打开*.ipynb文件 [MSSQL]刷新全部视图 [Python]if-else的多种简洁的写法 [Python]Python __iter__ 深入理解 [Go]VSCode安装GoLang插件依赖安装失败
基于Windows,Docker用法
炎峰森林影 · 2025-10-21 · via 博客园 - 炎峰森林影

1、安装Docker Desktop

2、打开Docker Desktop,查找Images来Pull安装(可用命令行安装)
node:latest
nginx:latest

3、挂载本地目录

docker run -it --rm -v F:/demo:/app -w /app -p 5173:5173 node:latest bash

# -v:F:/demo 与 /app 相互映射
# -w:直接进入映射文件夹,省略cd这一步
# -p:映射端口(可以多个 -p),vite默认5173端口

4、创建vue项目

npm create vue@latest # 项目名:vue-docker-demo
cd vue-docker-demo
npm install
npm run build # 必须成功创建dist

5、退出docket容器

exit

6、在项目根目录创建Dockerfile

# 阶段 1:编译
FROM node:latest AS build-stage
WORKDIR /app
COPY package*.json ./
RUN npm ci --prefer-offline --no-audit
COPY . .
RUN npm run build

# 阶段 2:托管
FROM nginx:latest AS production-stage
COPY --from=build-stage /app/dist /usr/share/nginx/html
# 可选:拷贝自定义 nginx 配置(解决刷新 404)
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

7、在项目根目录创建.dockerignore

node_modules
dist
.git
*.md

8、在项目根目录创建nginx.conf(解决 Vue History 模式刷新 404)

events {
    worker_connections 1024;
}
http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    server {
        listen 80;
        server_name localhost;
        root /usr/share/nginx/html;
        index index.html;
        # 关键行:History 模式刷新不 404
        location / {
            try_files $uri $uri/ /index.html;
        }
    }
}

9、创建本地镜像

cd F:\demo\vue-docker-demo
docker build -t vue-docker-demo .
docker images vue-docker-demo # 检查是否成功

10、运行容器

docker rm -f vue-app  # 强制删除容器(如有)
docker run -d -p 3000:80 --name vue-app vue-docker-demo

11、打开浏览器
http://localhost:3000/