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

Docker全家桶:Docker Compose项目部署

在学习完了前面的基础知识之后,我们现在可以开始部署完整的项目了。项目分成两个部分,前端和后端,并且采用前后端分离的形式。对应到docker,就是前端和后端分别对应一个容器。把这两个容器加入到同一个网段中,就能够进行数据的传输了。

但是呢,大体上比较繁琐,后端打包、前端打包、配置数据库、配置jdk环境,等等。最后手动通过docker run来把这些包放到容器中,才能运行起来。

通过DockerCompose就能够完成对于项目的一键部署。

什么是DockerCompose?DockerCompose是 Docker 官方编排(Orchestration)工具,用于定义和运行多容器 Docker 应用程序。使用 Docker Compose,你可以使用一个 YAML 文件来配置你的应用服务。然后使用一个简单的命令,就可以创建并启动所有服务。

在这个文件中:

  • mysql 服务:

    image: 使用 mysql 镜像。
    container_name: 容器命名为 mysql。
    ports: 将容器的 3306 端口映射到宿主机的 3306 端口。
    environment: 设置环境变量,包括时区 TZ 和 MySQL 的根用户密码 MYSQL_ROOT_PASSWORD。
    volumes: 挂载卷,包括配置文件、数据目录和初始化脚本目录。
    networks: 指定该服务连接到 demo-net 网络。

  • demo 服务:

    build: 指定构建上下文和 Dockerfile。
    container_name: 容器命名为 hmall。
    ports: 将容器的 8080 端口映射到宿主机的 8080 端口。
    depends_on: 指定该服务依赖于 mysql 服务,意味着 mysql 服务会先启动。
    networks: 指定该服务连接到 demo-net 网络。

  • nginx 服务:

    image: 使用 nginx 镜像。
    container_name: 容器命名为 nginx。
    ports: 将容器的 18080 和 18081 端口映射到宿主机的相应端口。
    volumes: 挂载卷,包括配置文件和静态资源目录。
    depends_on: 指定该服务依赖于 demo 服务。
    networks: 指定该服务连接到 demo-net 网络。

  • 网络:定义了一个自定义网络 demo-net,服务 mysql、demo 和 nginx 都连接到这个网络。

  • 卷:定义了多个挂载卷,用于持久化数据和共享配置文件。

当配置好了一个DockerCompose文件后,通过简单的一行命令就可以启动这些服务,让他们自动加入网段,自动建立起联系。

Docker Compose的作用远不止如此,还能够完成集群的部署等等~


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

相关文章:

  • 指针与数组:深入C语言的内存操作艺术
  • WordPress源码解析-数据库表结构
  • SLAM/数字图象处理基础
  • 【java面向对象编程】第九弹----抽象类、接口、内部类
  • 基于谱聚类的多模态多目标浣熊优化算法(MMOCOA-SC)求解ZDT1-ZDT4,ZDT6和工程应用--盘式制动器优化,MATLAB代码
  • SOTA简繁中文拼写检查工具:FASPell Chinese Spell Checker 论文
  • CICD Jenkins实现Pipline
  • sqli-labs时间盲注、布尔盲注脚本
  • 数据结构之链表(2),双向链表
  • 面试系列-携程暑期实习一面
  • C++ | Leetcode C++题解之第438题找到字符串中所有字母异位词
  • Python Web 应用中的 API 网关集成与优化
  • IText导出pdf不显示泰文
  • 438. 找到字符串中所有字母异位词
  • uniapp 知识点
  • 【前端样式】Sweetalert2简单用法
  • 如何使用ssm实现个人日常事务管理系统+vue
  • 金融教育宣传月 | 平安养老险百色中心支公司开展金融知识“消保县域行”宣传活动
  • 心理咨询预约管理系统(含源码+sql+视频导入教程)
  • web前端与koa框架node后端实现分片断点上传
  • xtu oj 六边形
  • 制造企业如何提升项目管理效率?惠科股份选择奥博思PowerProject项目管理系统
  • Windows环境Apache httpd 2.4 web服务器加载PHP8:Hello,world!
  • 【BurpSuite】访问控制漏洞和权限提升 | Access control vulnerabilities (3-6)
  • 一个静态ip可以提取出来多少ip
  • 新版pycharm如何导入自定义环境