SpringCloud微服务-DockerCompose(初识、安装、部署)

DockerCompose(初识、安装、部署)

文章目录

  • DockerCompose(初识、安装、部署)
    • 初识DockerCompose?
    • DockerCompose安装
    • DockerCompose部署微服务
    • 问题解决(重要!!!)

初识DockerCompose?

  • Docker Compose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器!

  • Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。

version: "3.8"
services:mysql:image: mysql:5.7.25environment:MYSQL_ROOT_PASSWORD: 123 volumes:- "/tmp/mysql/data:/var/lib/mysql"- "/tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf"web:build: .ports:- "8090:8090"

将Docker run中的各种参数全部转化为compose中的指令。

  • DockerCompose的详细语法参考官网:https://docs.docker.com/compose/compose-file/

DockerCompose安装

参照文档:DockerCompose安装

DockerCompose部署微服务

实现思路如下:

  1. 查看cloud-demo文件夹,里面已经编写好了docker-compose文件,结构如下

image-20240304203556334

  1. 修改自己的cloud-demo项目,将数据库、nacos地址都命名为docker-compose中的服务名

  2. 使用maven打包工具,将项目中的每个微服务都打包为app.jar

  3. 将打包好的app.jar拷贝到cloud-demo中的每一个对应的子目录中

  4. 将cloud-demo上传至虚拟机,利用 docker-compose up -d 来部署

    解释:启动所有在docker-compose.yml文件中定义的服务,并且-d后台启动

其中:

docker-compose.yml的内容:

version: "3.2"services:nacos:image: nacos/nacos-serverenvironment:MODE: standaloneports:- "8848:8848"mysql:image: mysql:latestenvironment:MYSQL_ROOT_PASSWORD: toorvolumes:- "$PWD/mysql/data:/var/lib/mysql"- "$PWD/mysql/conf:/etc/mysql/conf.d/"userservice:build: ./user-servicedepends_on:  - nacosorderservice:build: ./order-servicedepends_on:  # 表示orderservice在nacos启动之后启动- nacosgateway:build: ./gatewayports:- "10010:10010"

Dockerfile内容:

FROM java:8-alpine
COPY ./app.jar /tmp/app.jar
ENTRYPOINT java -jar /tmp/app.jar

常见的docker-compose命令我已经写成了一个文档,也可以使用--help命令来查看命令的具体使用用法。

问题解决(重要!!!)

  1. 首先使用命令后台启动:

    docker-compose up -d
    

    image-20240304210537693

  2. 发现服务并没有成功启动,使用命令查看日志:

    docker-compose logs -f
    

    会发现一堆报错:

    image-20240304210750027

    其报错的原因是我们的服务尝试启动,发现nacos启动在各种Service服务之后,所以服务无法启动,更别说访问了,可以使用depends-on可以设置容器的启动顺序,如下文件配置:# 表示orderservice在nacos启动之后启动

    version: "3.2"services:nacos:image: nacos/nacos-serverenvironment:MODE: standaloneports:- "8848:8848"mysql:image: mysql:latestenvironment:MYSQL_ROOT_PASSWORD: toorvolumes:- "$PWD/mysql/data:/var/lib/mysql"- "$PWD/mysql/conf:/etc/mysql/conf.d/"userservice:build: ./user-servicedepends_on:  - nacosorderservice:build: ./order-servicedepends_on:  # 表示orderservice在nacos启动之后启动- nacosgateway:build: ./gatewayports:- "10010:10010"
    
  3. 现在重启一下服务就可以了:

    #docker-compose restart <你的服务名(可以多个空格隔开)>
    docker-compose restart gateway userservice orderservice
    

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

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

相关文章

npm install没有创建node_modules文件夹

问题记录 live-server 使用时 报错&#xff1a;live-server : 无法将“live-server”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。 npm install 安装 但是 这时npm install没有创建node_modules文件夹&#xff0c;只生成package-lock.json文件 方法一&#xff1a; 手…

HashData的湖仓一体思考:Iceberg、Hudi特性讲解与支持方案

湖仓一体作为一种新兴的开放式数据管理架构&#xff0c;能够充分发挥数据湖的灵活性、生态丰富以及数据仓库的企业级数据分析能力&#xff0c;已经成为企业建设现代数据平台的热门选择。 在此前的直播中&#xff0c;我们分享了HashData湖仓一体方案架构设计与Hive数据同步。本…

你所不知道的端口耗尽(三)

问题背景 在你所不知道的端口耗尽前面的两篇章节中&#xff0c;介绍了经典的客户端端口耗尽和SNAT端口耗尽问题&#xff0c;但是对于解决方案只是一笔带过&#xff0c;这篇文章会更详细的介绍解决方案。解决方案主要分为两大类&#xff0c;优化部署和优化应用程序。 优化部署 …

Unity2013.1.19_DOTS_Burst compiler

Unity2013.1.19_DOTS_Burst compiler DOTS是一种新产品&#xff0c;现在尚在起步阶段。由于它处于持续发展中&#xff0c;随着我们努力使其达到最佳状态&#xff0c;您将看到API会不断演变和日趋成熟。 DOTS包含以下元素&#xff1a; 实体组件系统(ECS) - 提供使用面向数据的…

selenuim【1】$x(‘xpath’)、WebDriverWait()、try/assert

文章目录 1、执行driver webdriver.Chrome()后很久才打开浏览器2、浏览器多元素定位 $x(‘xpath语法’)3、打开浏览器driver.get("网址")执行了很久才开始定位元素&#xff1a;等待&#xff08;1&#xff09;driver.set_page_load_timeout(t)&#xff08;2&#xff…

亚信安慧AntDB:编织数据丝路,缔造创新篇章

亚信安慧AntDB作为一款具备国产化升级改造经验的数据库系统&#xff0c;在15年的平稳运行中积累了丰富经验。通过持续的创新和技术进步&#xff0c;AntDB不断优化性能和功能&#xff0c;满足用户的需求&#xff0c;与国际先进数据库系统保持竞争力。 AntDB秉承着与用户和行业保…

2024年最新《国际预警期刊》正式更新!

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、国际期刊预警名单的变化&#xff1f;二、课程案例展示&#xff08;篇幅有限仅展示部分&#xff09;1.【热图系列】2.【九象限图系列】3.【富集分析系列】4.【机…

c# 调用ip2region组件 根据ip地址进行定位归属地运营商

需求描述&#xff1a;当项目中需要将IP转换成对应的归属地以及运营商&#xff0c;那么通过ip2region组件即可完美实现。 p2region本身支持net4.5以上&#xff0c;还有个ip2region.net组件&#xff0c;它要求net6及以上。所以&#xff0c;根据自己项目的需求即可选择其中一种方…

Domain Adaptation Vs. Prompt-Tuning:能否用域自适应解决大模型提示学习问题?

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 作者简介 李江梦&#xff0c;中国科学院软件研究所天基综合信息系统全国重点实验室助理研究员 论文简介 今天介绍的是被机器学习领域顶级学术会议ICLR 2024接收的论文&#xff1a;BayesPrompt: Prompting Large…

006-CSS-常见问题汇总

常见问题汇总 1、伪元素与伪类2、偏门但好用的样式3、文字溢出三个点展示4、空白折叠问题5、文字的垂直居中6、 Vue项目中 在父组件中修改子组件样式7、BFC 概念7.1、兄弟元素外边距合并7.2、父子元素外边距塌陷 8、box-sizing8.1、box-sizing: border-box8.2、box-sizing: con…

机器人顶刊IJRR近期国人新作(2024)

一、IJRR简介 The International Journal of Robotics Research&#xff08;IJRR&#xff09;是机器人领域的高水平学术期刊&#xff0c;专注于发布关于机器人技术和相关领域的最新研究成果。IJRR创刊于1982年&#xff0c;是该领域的第一本学术刊物&#xff0c;2022-2023最新影…

el-dialog封装组件

父页面 <template><div><el-button type"primary" click"visible true">展示弹窗</el-button><!-- 弹窗组件 --><PlayVideo v-if"visible" :visible.syncvisible /></div> </template><sc…