当前位置: 首页 > news >正文

Docker部署前后端分离项目

镜像下载

在有网络的电脑下载镜像(Windows):依次在CMD命令台执行以下代码

docker pull node:20

docker pull openjdk:22-jdk

docker pull mysql:8.0

docker pull nginx:1.27

删除镜像代码:

docker rmi node:latest

查看镜像列表代码:

docker images

测试镜像代码:

docker run --rm openjdk:22-jdk java -version

 检查容器状态(包括已停止的):

docker ps -a

镜像导出

docker save -o node-20.tar node:20

docker save -o mysql-8.0.tar mysql:8.0

docker save -o openjdk-22-jdk.tar openjdk:22-jdk

docker save -o all-images.tar node:20 mysql:8.0 openjdk:22-jdk

镜像导入 

docker load -i node-20.tar

docker load -i mysql-8.0.tar

docker load -i openjdk-22-jdk.tar

项目部署 

后端:

FROM openjdk:22-jdk
WORKDIR /app
COPY platFormBack-0.0.1-SNAPSHOT.jar .
EXPOSE 8580
ENTRYPOINT ["java", "-jar", "platFormBack-0.0.1-SNAPSHOT.jar"]

前端:  

FROM nginx:1.27
RUN rm -rf /etc/nginx/conf.d/*
COPY nginx.conf /etc/nginx/conf.d/default.conf
COPY dist /usr/share/nginx/html
EXPOSE 9877
CMD ["nginx", "-g", "daemon off;"]
server {
    listen 9877;
    server_name localhost;
    root /usr/share/nginx/html;
    index index.html index.htm;
    location / {
        try_files $uri $uri/ /index.html;
    }
}

docker-compose.yml: 

version: "3.8"

services:
  frontend:
    build:
      context: ./frontend
      dockerfile: Dockerfile
    container_name: frontend_container
    ports:
      - "9877:9877"
    restart: always

  backend:
    build:
      context: ./backend
      dockerfile: Dockerfile
    container_name: backend_container
    ports:
      - "8580:8580"
    restart: always
    
  mysql:
    image: mysql:8.0
    container_name: mysql_container
    ports:
      - "3307:3306"  # 宿主机3307 → 容器3306
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 123456
    volumes:
      - mysql_data:/var/lib/mysql
      
volumes:
  mysql_data:

数据库

docker cp "D:/Docker部署测试/mysql-init/platform.sql" mysql_container:/init.sql
docker exec -it mysql_container bash

mysql -u root -p

create database platform;

source /init.sql;

项目容器启动

docker-compose up -d

强制使用最新镜像并覆盖 

docker-compose up -d --build

关闭运行代码: 

docker-compose down

进入容器查看 

docker exec -it frontend_container bash

cat /etc/nginx/conf.d/default.conf

nginx -t

 BUG修复

前端或后端一直访问不到:

原因:容器启动的镜像如果已存在未关闭,则一直启动的是旧的镜像。

后端请求mysql失败:

强制重新构建镜像 

docker-compose down
docker-compose up -d --build

优化点

后端配置好像能直接用:

相关文章:

  • vue element-ui 工程创建
  • Unity:EasyRoad3D插件学习 二期
  • 学有所记- 探索FastAPI在docker上的部署
  • vLLM 部署 openai whisper 模型实现语音转文字
  • C语言基础:弟11天笔记
  • ubuntu20.04 APT 安装MySQL Community Server 8
  • vue create 与 vue init webpack 的 区别
  • 游戏搭建云服务器配置推荐
  • PyTorch --torch.cat张量拼接原理
  • 前端er在Cursor使用MCP实现精选照片的快速上手教程
  • AISTATS 2025 | ChronosX:利用外生变量调整预训练时间序列模型
  • Fnos 飞牛Nas安装桌面环境 gnome和KDE桌面- All in One 笔记~1
  • Dubbo(25)如何配置Dubbo的协议和端口?
  • 【减小图片打包体积】image-webpack-loader
  • MySQL--数据备份
  • 实时数据流处理利器:Apache Storm 在大数据中的应用
  • .Net中对称加密的实现
  • cJSON类型及type值详解
  • ECharts系列: Vue 中使用 ECharts 折线图时,怎么配置来实现默认隐藏某些图例,并在用户点击图例时显示或隐藏对应的数据系列
  • MySQL的事务
  • 做网上兼职的网站/浙江seo
  • 成都新都网站开发/网上商城推广13种方法
  • 网站定位授权开启权限怎么做/网络建站公司
  • 宝鸡外贸网站建设/seo排名赚app
  • 广州天河网站建设/百度站长工具链接提交
  • 手游门户网站建设/黄页网