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是没必要动的,只是这个服务还是要注意一下的,镜像要删了才行,我没注意到这个问题,导致自己做了好多无用功。

相关推荐
学思之道18 分钟前
给Linux操作系统命令取个别名
linux·运维·经验分享·学习方法
GOTXX26 分钟前
应用层协议HTTP
linux·网络·网络协议·计算机网络·http·fiddler
Nightselfhurt42 分钟前
Spring cloud 中gateway原理
spring·spring cloud·gateway
dong_beijing42 分钟前
GO语言工程构建示例-mac和linux适用
linux·运维·服务器
是芽芽哩!1 小时前
【Kubernetes】常见面试题汇总(五十八)
云原生·容器·kubernetes
小小工匠1 小时前
系统安全 - Linux /Docker 安全模型及实践
linux·安全·系统安全
帅气的人1231 小时前
使用 docker-compose 启动 es 集群 + kibana
elasticsearch·docker
獨枭1 小时前
Ubuntu 通过 Docker 搭建 GitLab
ubuntu·docker·gitlab
2201_761199042 小时前
nginx 负载均衡1
linux·运维·服务器·nginx·负载均衡
suri ..2 小时前
【Linux】进程第三弹(虚拟地址空间)
linux·运维·服务器