一、问题描述
1.1 产生原因
因为我是拉取的别人的项目,所以需要在本地配置项目需要的环境,在本地虚拟机中需要使用docker 进行服务的部署,我当时的流程是这样的,将必要的软件安装好后(就是docker和docker-componse),然后上传docker-compose.yml文件,里面有容器的启动命令,包含了各种参数的配置,如下,当时我不知道seata的配置中还有ip的配置,这个ip跟我的虚拟机的ip并不一致,所以就导致了后面的问题
1.2 产生问题
我在启动某个服务的时候,这个服务一直请求失败,我通过查看它的运行日志找到了问题所在
报错信息:
10:30:54.261-[a2c9fe491352][sys]-ERROR 7 ---[.naming.updater]com.alibaba.nacos.client.naming request:/nacos/v1/ns/instance/list failed,servers:[192.168.150.101:8848],code:500,msg:connect timed out
- 查看日志
docker logs -f [容器名]
如下图所示,对应上面说到的IP错误,导致seata服务也请求失败
二、问题解决
当知道是docker-compose.yml文件的配置问题就很好解决了
2.1 找到自己的docker-compose.yml文件
- 如下是我的文件所在地:
cd /usr/local/src
2.2 重新编辑docker-compose.yml文件
- 这里我编辑的是seata的配置,改成自己虚拟机的IP
seata: image: seataio/seata-server container_name: seata ports: - "8099:8099" - "7099:7099" environment: SEATA_IP: 192.168.113.128 volumes: - "./seata:/seata-server/resources" networks: - new restart: always depends_on: - mysql - nacos
2.3 通过docker-componse重新运行docker-compose.yml文件
docker-compose up -d
2.4 重新启动docker容器
systemctl restart docker
2.5 查看seata信息
docker inspect seata
- 可以发现已经成功