DockerCompose快速部署Java项目、nginx前端和mysql数据库到centos虚拟机

简介:整理自:SpringCloud微服务开发与实战,java黑马商城项目微服务实战开发(涵盖MybatisPlus、Docker、MQ、ES、Redis高级等)课程的飞书文档。

DockerCompose介绍

大家可以看到,我们部署一个简单的java项目,其中包含3个容器:

  • MySQL
  • Nginx
  • Java项目
    而稍微复杂的项目,其中还会有各种各样的其它中间件,需要部署的东西远不止3个。如果还像之前那样手动的逐一部署,就太麻烦了。

而Docker Compose就可以帮助我们实现多个相互关联的Docker容器的快速部署。它允许用户通过一个单独的 **docker-compose.yml 模板文件(YAML 格式)**来定义一组相关联的应用容器。
docker-compose.yml文件的基本语法可以参考官方文档:
https://docs.docker.com/reference/compose-file/legacy-versions/
在这里插入图片描述

手动部署与DockerCompose部署对比

在这里插入图片描述

DockerCompose常见命令

在这里插入图片描述
在这里插入图片描述

DockerCompose部署步骤

1、首先保证虚拟机的root目录下有如下文件及对应的配置文件
放入哪些文件见文章:https://blog.csdn.net/weixin_62818371/article/details/143089135
在这里插入图片描述
2、将docker-compose.yml部署文件放入虚拟机的root目录下
注意点:
①、container_name: hm:Java应用容器名需要与nginx的nginx.conf配置里的容器名保持一致。

networks:hm-net:name: hmall

②、hm-net 是一个网络的标识符,用于在 Docker Compose 文件中引用和管理这个网络;这个标识符是局部的,仅在当前 Docker Compose 文件中有效。
③、name: hmall 是这个网络在 Docker 主机上的 实际名称。当 Docker 创建这个网络时,它将被命名为 hmall;这个名称是全局的,影响到 Docker 主机上网络的管理和识别。
docker-compose.yml示例文件:

version: "3.8"services:mysql:image: mysqlcontainer_name: mysqlports:- "3306:3306"environment:TZ: Asia/ShanghaiMYSQL_ROOT_PASSWORD: 123volumes:- "./mysql/conf:/etc/mysql/conf.d"- "./mysql/data:/var/lib/mysql"- "./mysql/init:/docker-entrypoint-initdb.d"networks:- hm-nethmall:build: context: .dockerfile: Dockerfilecontainer_name: hmports:- "8080:8080"networks:- hm-netdepends_on:- mysqlnginx:image: nginxcontainer_name: nginxports:- "18080:18080"- "18081:18081"volumes:- "./nginx/nginx.conf:/etc/nginx/nginx.conf"- "./nginx/html:/usr/share/nginx/html"depends_on:- hmallnetworks:- hm-net
networks:hm-net:name: hmall

3、DockerCompose一键部署
在执行命令去需要把会产生冲突的所有镜像和容器清除

# 启动所有, -d 参数是后台启动
docker compose up -d
# 查看容器
docker compose ps

如果要撤回一键部署,执行以下命令:

# 停止并移除所有容器、网络
docker compose down

4、浏览器测试是否成功
测试具体操作见文章:https://blog.csdn.net/weixin_62818371/article/details/143089135

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/56967.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

黑马程序员Java笔记整理(day03)

1.switch 2.for与while对比 3.嵌套定义,输出的区别性 4.break与continue 5.随机数生成的两种方式 6.Random 7.随机验证码

到底是微服务,还是SOA?

引言:大概正式工作有5年了,换了三个大厂【也是真特么世道艰难,中国互联网人才饱和了】。基本上每个公司有的架构都不太相同,干过TOC和TOB的业务,但是大家用的架构都不太相同。有坚持ALL in one的SB,最后服务…

【Linux】并行与并发(含时间片)

简单来说 并发:多个进程轮流使用同一个CPU,在逻辑层面上,一段时间内推进完成了多个进程 并行:机器中有多个CPU可以使用,在物理层面上,做到同一时间会有多个进程同时在运行 举个例子:一群人需要…

深入理解WPF中的命令机制

Windows Presentation Foundation(WPF)是微软推出的一种用于构建桌面客户端应用程序的技术。它被认为是现代Windows应用程序的基础,具有强大的图形和媒体处理能力。在WPF中,“命令”是一个重要的概念,它为应用程序开发…

Mybatis操作

一、Mybatis基础操作 准备 准备数据库表 emp 1.创建一个新的springboot工程,选择引入对应的起步依赖(mybatis、mysql驱动、lombok) 2.application.properties中引入数据库连接信息 3.创建对应的实体类 Emp(实体类属性采用驼峰…

②PROFINET转ModbusTCP, EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关

EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关https://item.taobao.com/item.htm?ftt&id822721028899 协议转换通信网关 PROFINET 转 Modbus TCP (接上一章) 配置使用 与 PROFINET 主站进行组态说明 这里介绍与西门子 PLC 的…

git分支模型

定义分支 长期分支 指长期存在的分支,也叫固定分支 developmaster 短期分支 短分支没有固定的分支名。但是有分支名规范 feature分支hotfix分支 分支模型 暂时无法在文档外展示此内容 参考 分支的目的是隔离,但多一个分支也意味着维护成本的增加。…

NFT Insider #152:The Sandbox Alpha 第4季开启

市场数据 加密艺术及收藏品新闻 Realm of Historia 推出首个以古老文化遗址为主题的 NFT 系列 专注于文化遗产保护的区块链平台 Realm of Historia 正通过推出首个 NFT 系列扩大其全球影响力。该系列以亚美尼亚的古代遗址 Carahunge 为主题,这一遗址已有 7500 多年…

EDM邮件营销,如何确保高频率发送不触发限制

EDM邮件营销需选对平台,遵守反垃圾邮件法规,高效管理邮件列表,合理制定发送频率,优化内容与设计,用智能化工具测试与优化,监控送达和反馈,维持良好ISP关系,确保高效安全发送不封号。…

13.3寸三防平板大尺寸+高速运行提升工业软件操作体验

在工业领域,移动设备的应用日益广泛,其性能直接影响着工作效率和数据安全。传统的工业平板电脑常常面临着屏幕尺寸过小、运行速度缓慢、以及抗环境能力不足等问题,这些都制约了工业软件的流畅运行和高效应用。而一款搭载先进硬件配置的13.3寸…

线性代数基础02_矩阵(下)向量

目录 一、矩阵(下) 1、伴随矩阵 2、逆矩阵 3、初等变换 4、矩阵的标准形 4.1行阶梯形矩阵 4.2简化行阶梯型矩阵 二、向量 1、定义 2、向量的运算 3、矩阵的特征值和特征向量 4、向量的模 5、向量的内积 一、矩阵(下)…

动态规划-子数组系列——乘积最大子数组

1.题目解析 题目来源:152.乘积最大子数组——力扣 测试用例 2.算法原理 1.状态表示 由于题目给的数组中可以包含负数,因此求最大乘积有两种情况: a.负数乘以最小数得出最大乘积 b.整数乘以最大数得出最大乘积 所以需要两个表分别求出最大最…

Ajax(web笔记)

文章目录 1.Ajax的概念2.Ajax 的作用3.原生Ajax4.Axios4.1Axios的概念4.2Axios入门 1.Ajax的概念 AsynchronousJavaScriptAndXML,异步的JavaScript和XML 2.Ajax 的作用 数据交换:过Ajax可以给服务器发送请求,并获取服务器响应的数据。异步交互:可以在…

R语言医学数据分析实践-R编程环境的搭建

【图书推荐】《R语言医学数据分析实践》-CSDN博客 《R语言医学数据分析实践 李丹 宋立桓 蔡伟祺 清华大学出版社9787302673484》【摘要 书评 试读】- 京东图书 (jd.com) R语言编程_夏天又到了的博客-CSDN博客 R语言对编程环境的要求不高,可以在多种操作系统平台上…

找寻孤独伤感视频素材的热门资源网站推荐

在抖音上,伤感视频总是能够引起观众的共鸣,很多朋友都在寻找可以下载伤感视频素材的地方。作为一名资深的视频剪辑师,今天我来分享几个提供高清无水印伤感素材的网站,如果你也在苦苦寻找这些素材,不妨看看以下推荐&…

【软件运行类文档】项目试运行方案,试运行计划书(word原件)

一、 试运行目的 (一) 系统功能、性能与稳定性考核 (二) 系统在各种环境和工况条件下的工作稳定性和可靠性 (三) 检验系统实际应用效果和应用功能的完善 (四) 健全系统运行管理体制&…

RabbitMQ进阶_延迟消息

文章目录 一、 死信交换机和延迟消息1.1、 死信交换机1.2、 延迟消息 二、 DelayExchange插件三、 实现时的优化 在电商的支付业务中,对于一些库存有限的商品,为了更好的用户体验,通常都会在用户下单时立刻扣减商品库存。例如电影院购票、高铁…

How to install Node.js and NPM on CentOS

How to install Node.js and NPM on CentOS Download Node.js 菜鸟教程-Node.js 安装配置 Introduction Node.js is a JavaScript runtime built on Chrome’s V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and…

今日指数项目集成SpringSecurity

项目集成SpringSecurity ​ 在第一章我们是基于SpringSecurity、JWT技术实现前后端无状态化认证授权,而我们当前的项目是前后端分离的架构,同样也可借助Security框架和Jwt实现前后端的无状态认证授权操作; 1、项目自定义认证过滤器 1.1 依…

特斯拉Robotaxi发布会2024:自动驾驶未来的开端

引言 2024年10月,特斯拉在洛杉矶举行了一场引发全球科技界高度关注的发布会,主题为“We Robot”。这场发布会展示了特斯拉的最新自动驾驶技术,包括无人驾驶出租车Cybercab和无人驾驶厢式货车Robovan,并且还展示了人形机器人Optim…