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

[linux]docker项目部署

部署后端

  1. 使用idea打开资料中的hmall项目代码, 打包得到jav包

  • 使用maven进行打包, 不需要单元测试

  • 得到项目jav包

  1. 把自定义镜像文件和项目jar包上传至root目录

  1. 构建镜像

  1. 运行镜像

部署前端

  1. 需求:创建一个新的nginx容器,将课前资料提供的nginx.conf、html目录与容器挂载

  1. 把html目录和nginx配置文件上传到root/nginx目录

  1. 启动新的nginx镜像服务
docker run -d \
  --name nginx \
  -p 18080:18080 \
  -p 18081:18081 \
  -v /root/nginx/html:/usr/share/nginx/html \
  -v /root/nginx/nginx.conf:/etc/nginx/nginx.conf \
  --network heima \
  nginx

  1. 访问服务, 查看日志

DockerCompose

Docker Compose通过一个单独的docker-compose.ym模板文件(YAML格式)来定义一组相关联的应用容器,帮助我们实现多个相互关联的Docker容器的快速部署。

docker命令和 docker-compose文件描述的都是容器的信息, 只是语法不同

docker-compose文件描述信息解读

// 描述命令文件的版本
version: "3.8"

services:
  //容器列表
  mysql:
    // 镜像名称
    image: mysql
    // 容器名称
    container_name: mysql
    // 端口映射
    ports:
      - "3306:3306"
    // 环境变量
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: 123
    // 数据卷挂载
    volumes:
      - "./mysql/conf:/etc/mysql/conf.d"
      - "./mysql/data:/var/lib/mysql"
      - "./mysql/init:/docker-entrypoint-initdb.d"
    // 网络
    networks:
      - hm-net
  hmall:
    // 自动构建镜像 
    build: 
      // 自定义镜像所在目录
      // .表示当前目录
      context: .
      // 文件名
      dockerfile: Dockerfile
    container_name: hmall
    ports:
      - "8080:8080"
    networks:
      - hm-net
    // 依赖项
    // mysql容器创建完成后再创建此容器
    depends_on:
      - mysql
  nginx:
    image: nginx
    container_name: nginx
    ports:
      - "18080:18080"
      - "18081:18081"
    volumes:
      - "./nginx/nginx.conf:/etc/nginx/nginx.conf"
      - "./nginx/html:/usr/share/nginx/html"
    depends_on:
      - hmall
    networks:
      - hm-net
// 自动创建网络
networks:
  // 网络标识
  hm-net:
    // 网络名字
    name: hmall

docker compose的命令格式

  • 如果文件在当前目录,且文件名是docker-compose.yml, 就可以省略
  • project名称如果省略, 默认就是root
  • 如果需要后台运行, 可以跟上 -d 参数

实际操作

  1. 文件准备: 把docker compose文件上传到root目录

  1. 修改nginx.conf文件, 要把请求代理到java容器

  1. 清理之前的容器

  1. 清理之前的镜像

  1. 使用docker compose命令部署项目

  1. 项目部署成功


http://www.kler.cn/a/385371.html

相关文章:

  • 算法每日练 -- 双指针篇(持续更新中)
  • hhdb数据库介绍(9-4)
  • 淘淘商城实战高并发分布式项目(有源码)
  • Uniapp全局文件执行顺序详解
  • MySQL核心业务大表归档过程
  • 在vscode中开发运行uni-app项目
  • 【论文笔记】VCoder: Versatile Vision Encoders for Multimodal Large Language Models
  • 100+SCI科研绘图系列教程(R和python)
  • A day a tweet(sixteen)——The better way of search of ChatGPT
  • ffmpeg命令
  • L7.【LeetCode笔记】相交链表
  • Spring Boot 项目启动时打印端口号、项目名及访问地址
  • 【Vue 全家桶】3、使用 Vue 脚手架(Vue-cli)
  • 商业数据库 - oracle - 索引
  • InnoDB 存储引擎<六> Redo log
  • 计算机网络——TCP篇
  • 基于SpringBoot的Java教学支持系统开发指南
  • ​Controlnet作者新作IC-light V2:基于FLUX训练,支持处理风格化图像,细节远高于SD1.5。
  • Rust异步运行时框架tokio保姆级教程
  • 【SQL server】数据库远程连接配置
  • c++ 分治算法
  • Vue中使用echarts生成地图步骤详解
  • python opencv3
  • Streamlit 入门使用指南及与 FastAPI 的配合使用
  • 如何缩小PPT演示文稿的大小?
  • Spring Boot框架在信息学科平台建设中的实战技巧