Docker安装nacos:v3.0.2 + seata:2.0.0踩坑记录
·
1、'io.seata.server.console.service.BranchSessionService' that could not be found
上述报错是因为执行一下代码产生的:
docker run -d --name seata \
-p 8091:8091 \
-p 7091:7091 \
-e SEATA_IP=127.0.0.1 \
-v ~/Docker/seata/resources:/seata-server/resources/ \
seataio/seata-server:2.0.0
原因以及修改方案:
数据卷映射-v ~/Docker/seata/resources:/seata-server/resources,宿主机目录会覆盖镜像中的目录。 直接将application.yml配置文件放在seata目录下,然后改成单文件挂载: -v ~/docker/seata/application.yml:/seata-server/resources/application.yml
2、failed to req API:/nacos/v1/ns/instance after all servers([127.0.0.1:8848])
可以先自己看看这个地址

若修改nacos配置nacos.core.api.compatibility.admin.enabled=true后重启nacos、seata还是报错,则需要继续排查。
因为我的nacos和seata部署在同一台机器上,则需要将127.0.0.1修改成Docker内部地址host.docker.internal,这个主要用于容器内部访问运行Docker的宿主机上的服务。而对于宿主机上两个Docker容器之间的访问,通常不需要通过 host.docker.internal,因为容器可以通过Docker的网络配置(如桥接网络、覆盖网络等)直接相互通信。参考如下server-addr的值
seata:
config:
type: nacos
nacos:
server-addr: host.docker.internal:8848
group: SEATA_GROUP
data-id: seataServer.properties
registry:
type: nacos
nacos:
application: seata-server
server-addr: host.docker.internal:8848
3、docker 0101 can not connect to 172.17.0.5:8091 cause:can not register RM,err:can not connect to services-server.
微服务启动时,会出现在这个错误。出现这个的原因,是因为我用nacos用作seata和微服务的注册中心,当docker启动seata时,如果设置SEATA_IP=127.0.0.1,则在nacos上会注册成地址172.17.0.5,这个172开头地址是内网,无法被外部的微服务所连接。
docker run -d --name seata \
-p 8091:8091 \
-p 7091:7091 \
-e SEATA_IP=127.0.0.1 \
-v ~/Docker/seata/application.yml:/seata-server/resources/application.yml \
seataio/seata-server:2.0.0
解决这个问题也很简单,步骤如下
①、使用ifcong查看docker宿主机的地址,

②、然后重新启动seata
docker run -d --name seata \
-p 8091:8091 \
-p 7091:7091 \
-e SEATA_IP=192.168.43.5 \
-v ~/Docker/seata/application.yml:/seata-server/resources/application.yml \
seataio/seata-server:2.0.0
更多推荐


所有评论(0)