1.后端创建Dockerfile

FROM openjdk:17-jdk-slim
WORKDIR /app
COPY meeting-backend-1.0.0.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","app.jar"]

2.前端创建Dockerfile

server {
    listen 80;
    location / {
        root /usr/share/nginx/html;
        index index.html;
        try_files $uri $uri/ /index.html;
    }
    location /api/ {
        proxy_pass http://host.docker.internal:8080;
    }
}

3.下载docker desktop 的windows版本https://www.docker.com/products/docker-desktop/

  • 安装 Docker Desktop,安装时勾选Use WSL2 instead of Hyper-V
  • 打开 Docker→Settings→Resources→WSL Integration,勾选你的 Ubuntu,保存重启 Docker

4.修改docker国内加速源

  • 右下角任务栏右键 Docker 图标 → Settings → Docker Engine
  • 把现有 JSON 全量替换下面配置(JSON 格式严格,标点英文):
    {
      "builder": {
        "gc": {
          "defaultKeepStorage": "20GB",
          "enabled": true
        }
      },
      "experimental": false,
      "registry-mirrors": [
        "https://docker.xuanyuan.me",
        "https://docker.1ms.run",
        "https://docker.m.daocloud.io",
        "https://docker.mirrors.ustc.edu.cn",
        "https://mirror.ccs.tencentyun.com"
      ]
    }

    右下角 Apply & Restart,等待 Docker 自动重启 1 分钟。

5.验证生效

docker info

看到Registry Mirrors出现上面配置地址 = 配置成功,测试拉取轻量镜像:

docker pull nginx:alpine

6.前端docker打包

docker build -t meeting-web:1.0 .
docker run -d -p 80:80 --name web meeting-web:1.0

7.后端docker打包

docker build -t meeting-back:1.0 .
# 先关掉本地java -jar进程,再启容器后端
docker run -d -p 8080:8080 --name back meeting-back:1.0

8.查看已有镜像

docker images

9.导出镜像

# 导出两个镜像到D盘project-images.tar
docker save -o D:\project-images.tar meeting-web:1.0 meeting-back:1.0

10.wsl导入镜像运行项目

进入 WSL,导入 D 盘镜像包

docker load -i /mnt/d/project-images.tar

查看镜像

docker images

先启动后端容器

docker rm -f back web
docker run -d -p 8080:8080 --name back meeting-back:1.0

WSL 里输入创建命令

cat > linux_nginx.conf <<'EOF'
server {
    listen 80;
    location / {
        root /usr/share/nginx/html;
        index index.html;
        try_files $uri $uri/ /index.html;
    }
    location /api/ {
        proxy_pass http://back:8080;
    }
}
EOF

挂载配置启动前端

docker run -d -p 80:80 --name web -v $(pwd)/linux_nginx.conf:/etc/nginx/conf.d/default.conf meeting-web:1.0

Windows 浏览器打开:http://localhost 即可访问整套项目。

更多推荐