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

相关推荐
艾莉丝努力练剑7 小时前
【Linux进程控制(三)】实现自主Shell命令行解释器
linux·运维·服务器·c++·人工智能·安全·云原生
?re?ta?rd?ed?7 小时前
计算机中的进程状态与linux中如何管理进程
linux·运维·服务器
坐怀不乱杯魂7 小时前
Linux网络 - UDP/TCP底层
linux·服务器·网络·c++·tcp/ip·udp
德育处主任Pro7 小时前
『NAS』Typora平替,一款所见即所得的MD编辑器-Haptic
docker·编辑器·群晖·nas·绿联
lcx_defender8 小时前
【Docker】Docker部署运行Nginx
nginx·docker·容器
lcx_defender8 小时前
【Docker】Docker部署运行Elasticsearch
elasticsearch·docker·jenkins
大胡子大叔8 小时前
docker pull命令拉取镜像失败的解决方案
运维·docker·容器
码农水水8 小时前
从 OpenFeign 到 RestClient:Spring Cloud 新时代的轻量化 HTTP 调用方案
java·运维·后端·spring·http·spring cloud·面试
Li_Zhi_Yao8 小时前
linux下qt快速搭建环境
linux·运维·qt
Sylvan Ding8 小时前
Clawdbot (OpenClaw/Moltbot) 内网穿透部署方案(安全有效-Linux-2026.01.30)
linux·运维·安全·tailscale·clawdbot·moltbot·openclaw