Docker部署微服务问题及解决

👨‍🎓作者简介:一位大四、研0学生,正在努力准备大四暑假的实习

🌌上期文章:Docker容器命令案例:Nginx容器修改,Redis容器持久化

📚订阅专栏:Docker

希望文章对你们有所帮助

我在学习微服务架构的时候需要用docker进行部署,为了方便我实际上使用的Docker-Compose,这个的简单使用方式可以看这篇文章:
详解SpringCloud微服务技术栈:DockerCompose部署微服务集群

这里讲解了一下部署微服务集群的过程,但是在实践的过程中总还是会出现很多问题,在这里我讲一下自己遇到的问题,以及解决的方法:

Docker部署微服务问题及解决

下载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/文件夹下,并且利用命令来对其进行改名:

powershell 复制代码
mv docker-compose-linux-x86_64 docker-compose

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

powershell 复制代码
chmod +x /usr/local/bin/docker-compose

5、创建软链:

powershell 复制代码
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包重新上传,还是没办法执行的,这是因为容器已经在执行了,你需要先把容器停下来:

powershell 复制代码
docker-compose stop

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

powershell 复制代码
docker-compose rm `容器名`

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

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

powershell 复制代码
docker images

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

powershell 复制代码
docker-compose rmi `镜像id`

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

相关推荐
GJCTYU30 分钟前
阿里云多端低代码开发平台魔笔使用测评
低代码·阿里云·云原生·容器·serverless·云计算
铁锤妹妹头发多1 小时前
新手用docker真**难受
运维·docker·容器
2739920291 小时前
Ubuntu20.04 安装build-essential问题
linux
wowocpp4 小时前
查看 linux ubuntu 分区 和 挂载 情况 lsblk
linux·运维·ubuntu
wowocpp5 小时前
查看 磁盘文件系统格式 linux ubuntu blkid ext4
linux·数据库·ubuntu
龙鸣丿6 小时前
Linux基础学习笔记
linux·笔记·学习
耶啵奶膘7 小时前
uniapp-是否删除
linux·前端·uni-app
2401_850410838 小时前
文件系统和日志管理
linux·运维·服务器
XMYX-09 小时前
使用 SSH 蜜罐提升安全性和记录攻击活动
linux·ssh
南猿北者10 小时前
docker容器
docker·容器