Docker部署微服务问题及解决

👨‍🎓作者简介:一位大四、研0学生,正在努力准备大四暑假的实习
🌌上期文章:Docker容器命令案例:Nginx容器修改,Redis容器持久化
📚订阅专栏:Docker
希望文章对你们有所帮助

我在学习微服务架构的时候需要用docker进行部署,为了方便我实际上使用的Docker-Compose,这个的简单使用方式可以看这篇文章:
详解SpringCloud微服务技术栈:DockerCompose部署微服务集群
这里讲解了一下部署微服务集群的过程,但是在实践的过程中总还是会出现很多问题,在这里我讲一下自己遇到的问题,以及解决的方法:

Docker部署微服务问题及解决

  • 下载docker-compose,但是使用出现异常
  • jar的打包问题
  • 成功打包,但是仍旧没办法执行

下载docker-compose,但是使用出现异常

验证docker-compose成功下载的指令是docker-compose -v,但是并没有出现版本好,在执行部署指令docker-compose up -d的时候也不行,都出现了下面的错误:

/usr/local/bin/docker-compose:行1:html:没有那个文件或目录
/usr/local/bin/docker-compose:行2:未预期的符号附近有语法错误
/usr/local/bin/docker-compose:行2:…

这是因为我在Linux中利用了curl来拉取高速安装版本,而网速可能不稳定,导致里面的东西没下载完全。

这时候需要重新进行安装。

1、首先把之前的/usr/local/bin/文件夹下面的docker-compose文件删除,这个文件需要换。

2、然后下载完整文件到本地,可以去百度网盘下载:
链接:https://pan.baidu.com/s/1uQSNIbJa1QZgYL5n9GybAQ?pwd=qlky
提取码:qlky

3、下载完上传到/usr/local/bin/文件夹下,并且利用命令来对其进行改名:

mv docker-compose-linux-x86_64 docker-compose

4、将可执行权限应用于二进制文件:

chmod +x /usr/local/bin/docker-compose

5、创建软链:

ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

jar的打包问题

docker-compose.yml中的服务与服务之间是可以互相访问的,因此我的服务order-service与user-service是没必要暴露端口的,mysql可以暴露端口,方便你在本地进行连接。

需要注意的是,docker-compose.yml中设定了MySQL密码为123,因此在idea中进行打包的时候,必须确保application.yml中的mysql都是123,不然打包了也没办法成功。

成功打包,但是仍旧没办法执行

无论这其中发生了什么问题,需要重新打包了,那把打包后的jar包重新上传,还是没办法执行的,这是因为容器已经在执行了,你需要先把容器停下来:

docker-compose stop

停止了容器以后,需要进行删除,要删除gateway、order-service以及user-service的容器,利用下面语句:

docker-compose rm `容器名`

接下来还有一个很关键的地方,那就是镜像也得删除

如果不删除,下一次容器的创建还是用这个镜像来创建的,所以镜像也需要删除,需要删除的镜像依旧是gateway、order-service以及user-service,可以先通过下面语句查询所有的镜像:

docker images

查询到镜像以后,除了镜像的名称,还有镜像的id,需要通过镜像的id进行镜像删除操作:

docker-compose rmi `镜像id`

这样就删干净了,nacos是没必要动的,只是这个服务还是要注意一下的,镜像要删了才行,我没注意到这个问题,导致自己做了好多无用功。

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

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

相关文章

开发的年终总结怎么写?

引用两句互联网废话: “解决关键问题要找到问题的关键” “先承认问题才能解决问题” 目标一致 “目标一致”:大方向一致。 公司目标 "快速履约"实施目标 "着眼点在事"产品是否具有要求的功能;提出的需求、bug, 快速响应;关注点…

眼镜用超声波清洗机洗会有损坏吗?超声波清洗机有必要买吗

相信很多朋友都十分清楚超声波清洗机,虽然知道但是迟迟不敢下手入一款属于自己超声波清洗机!会担心超声波清洗机会不会把自己的眼镜给清洗坏了呢?什么样的超声波清洗机比较适合我呢?买一台超声波清洗机回来真的有必要吗&#xff1…

小程序系列--9.生命周期

1. 什么是生命周期? 2. 生命周期的分类 3. 什么是生命周期函数 4. 生命周期函数的分类 5. 应用的生命周期函数 6. 页面的生命周期函数

ASP.NET Core 对象池化技术

写在前面 Microsoft.Extensions.ObjectPool 是 ASP.NET Core 基础结构的一部分,当对象的初始化成本较高,并且可能被频繁使用时,才适合采用对象池技术;被ObjectPool管理的对象不会进入垃圾回收,使用时通过由实例对象实…

记录Qt和opencv 新环境配置过程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Qt是什么?二、Qt的版本三、安装步骤1.下载Qt2.双击安装包.exe开始安装3. 需要登陆才能继续安装,没有的就用邮箱注册账号4.注意安装路…

Message queue 消息队列--RabbitMQ 【基础入门】

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是平顶山大师,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的博客专栏《Message queue 消息队列--RabbitMQ 【基础入门…

Docker进阶篇-安装MySQL主从复制

一、MySQL主服务器 1、新建主服务器容器实例3307 docker run -p 3307:3306 \--name mysql-master \--privilegedtrue \-v /mydata/mysql-master/log:/var/log/mysql \-v /mydata/mysql-master/data:/var/lib/mysql \-v /mydata/mysql-master/conf:/etc/mysql \-e MYSQL_ROOT_…

Linux编辑器---vim

目录 1、vim的基本概念 2正常/普通/命令模式(Normal mode) 2、1命令模式下一些命令(不用进入插入模式) 3插入模式(Insert mode) 4末行/底行模式(last line mode) 4、1底行模式下的一些命令 5、普通用户无法进行sudo提权的解决方案 6、vim配置问题 6、1配…

基于 Redis 实现高性能、低延迟的延时消息的方案演进

1、前言 随着互联网的发展,越来越多的业务场景需要使用延迟队列。比如: 任务调度:延时队列可以用于任务调度,将需要在未来某个特定时刻执行的任务放入队列中。消息延迟处理: 延时队列可以用于消息系统,其中一些消息需要在一段时间后才能被消…

RK3568平台 HDMI交换机芯片PI3HDX231

一.简介 HDMI交换机芯片是一款可以同时输入几路HDMI的芯片,通过设计交换机芯片的寄存器值,已选择 其中一路作为输出。 I3HDX231是3:1 HDMI线性ReDriver交换机,支持每通道6 Gbps的数据速率,4096 x 2160像素分辨率,彩色…

Yolov7, Yolov8使用

YOLOV7 1. 安装和测试: 【小白教学】如何用YOLOv7训练自己的数据集 - 知乎 YOLOv7——训练自己的数据集 - 代码网 conda create --nameyolov7 python3.8 #the version of your python3 *** 这里需要注意如果 torch 和torchvion版本太高,会导致GPU不可…

Python项目——搞怪小程序

1、介绍 使用python编写一个小程序,回答你是猪吗。 点击“是”提交,弹窗并退出。 点击“不是”提交,等待5秒,重新选择。 并且隐藏了关闭按钮。 2、实现 新建一个项目。 2.1、设计UI 使用Qt designer设计一个UI界面&#xff0c…

《Python数据分析技术栈》第03章 01 正则表达式(Regular expressions)

01 正则表达式(Regular expressions) 《Python数据分析技术栈》第03章 01 正则表达式(Regular expressions) A regular expression is a pattern containing both characters (like letters and digits) and metacharacters (li…

Java 变量与标识符(命名规范)

变量 变量表示内存中的一个存储区域(不同的变量,类型不同,占用的空间大小不同)。 在Java中,每一个变量都有一个类型(type),变量的类型位于变量名之前。**变量名必须是以一个字母开…

添加dns解析缓存

添加dns解析缓存,加速页面访问 1、查询网址的ip地址 例如需要加速访问github.com,打开网站 IPAddress.com 查询 github.global.ssl.fastly.net 和 github.com 两个地址 找到对应的IP地址在命令行Ping通 2、修改本地hosts文件 windows系统的hosts文件…

深入解析JavaScript中箭头函数的用法

🧑‍🎓 个人主页:《爱蹦跶的大A阿》 🔥当前正在更新专栏:《VUE》 、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》 ​ ​ ✨ 前言 箭头函数(Arrow function)是JavaScript ES6中引入的一大特性。箭头函…

739.每日温度 496.下一个更大元素 I

739.每日温度 496.下一个更大元素 I 739.每日温度 力扣题目链接(opens new window) 请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位…

Android Matrix绘制PaintDrawable设置BitmapShader,手指触点为圆心scale放大原图,Kotlin(二)

Android Matrix绘制PaintDrawable设置BitmapShader,手指触点为圆心scale放大原图,Kotlin(二) 在 Android Matrix绘制PaintDrawable设置BitmapShader,手指触点为圆心scale放大原图,Kotlin-CSDN博客 基础上&…

操作系统——进程管理篇

操作系统——进程管理篇(王道23年版) 2.1_1_进程的概念、组成、特征 1.进程的概念 程序:是静态的,就是个存放在磁盘里的可执行文件,就是一系列的指令集合 进程:是动态的,是程序的一次执行过…

微服务治理:微服务安全详解

微服务安全旨在保护微服务架构中每一个独立的服务。与传统单体应用程序不同,它们在单点应用安全措施,微服务由于其独立性,需要分布式安全方法。 为何关注微服务安全? 攻击面扩大: 更多服务暴露在外,意味着攻击者拥有…