Docker全家桶:Docker Compose项目部署

news/2024/9/28 1:16:30 标签: docker, 容器

在学习完了前面的基础知识之后,我们现在可以开始部署完整的项目了。项目分成两个部分,前端和后端,并且采用前后端分离的形式。对应到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.niftyadmin.cn/n/5680012.html

相关文章

栈的各种接口的实现(C)

栈的概念 栈: 一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:…

RuoYi若依框架学习:多环境配置

在开发过程中,项目往往需要在不同的环境(如开发、测试和生产)中运行。RuoYi框架支持通过配置文件轻松实现多环境管理。以下是如何配置和使用多环境的技术分析。 1. 环境配置文件 RuoYi框架使用application-{profile}.yml文件来管理不同环境…

双十一购物节:五大必买爆款科技好物,让你省钱又省心

双十一购物节,作为中国最大的在线购物狂欢节,每年都吸引着无数消费者的眼球。在这个购物盛宴中,科技产品因其创新性、实用性和高性价比而成为消费者关注的焦点。随着科技的飞速发展,越来越多的智能设备走进了我们的生活&#xff0…

Vue2项目中vuex如何简化程序代码,提升代码质量和开发效率

Vuex为Vue中提供了集中式存储 库,其主要分为state、getter、mutation、action四个模块,它们每个担任了不同角色,分工不同;Vuex允许所有的组件共享状态抽取出来,以一个全局单例模式管理,状态集中存储在同一…

基于Hive和Hadoop的电商消费分析系统

本项目是一个基于大数据技术的电商消费分析系统,旨在为用户提供全面的电商消费信息和深入的消费行为分析。系统采用 Hadoop 平台进行大规模数据存储和处理,利用 MapReduce 进行数据分析和处理,通过 Sqoop 实现数据的导入导出,以 S…

C++系列-STL容器中算法中的最大最小

STL容器中算法中的最大最小 最大最小相关算法最大最小相关示例 最大最小相关算法 算法名称描述max(a, b)返回两个元素中较大的一个&#xff0c;return _Left < _Right ? _Right : _Left;max(a, b, pred)使用谓词作大小比较&#xff0c;return _Pred(_Left, _Right) ? _Ri…

为广大星商赋能,长沙还真是下足了功夫

随着城市竞争加剧&#xff0c;城市之间不仅要比拼上市公司数量&#xff0c;还要比拼初创企业的质量。建立更科学、有效的企业培育机制&#xff0c;真正给予企业发展所需要的帮助&#xff0c;将成为一座城市吸引年轻人和创业者的强大竞争力。 前段时间&#xff0c;笔者在与朋友…

信息学奥赛的最佳启蒙阶段是小学还是初中?

信息学奥赛&#xff08;NOI&#xff09;近年来越来越受家长和学生的关注&#xff0c;尤其是在编程教育不断升温的背景下&#xff0c;信息学竞赛成为了许多家庭的教育选择之一。家长们往往关心的是&#xff1a;孩子应该在什么年龄段开始接触信息学竞赛&#xff0c;才能打下坚实的…