docker 容器内的服务连接不上宿主机的redis服务

Blade 未结 2 2652
517695099
517695099 剑童 2021-03-08 15:26
悬赏:5

一、该问题的重现步骤是什么?

1. docker-compose部署的nacos,以及各个服务

2. 在宿主机上安装的redis,docker服务都启动成功也没有报错并成功在nacos中注册

3.nacos配置文件中配置的redis的地址是该服务器ifconfig命令下的docker0所对应的ip

4.网上找到一种解决办法是修改redis.conf配置文件的host为0.0.0.0,但是内部要求不能对外开放,所以此方法行不通,

另一种解决方案是修改容器内的服务的network为host模式,但是docker-compose文件中加入network_mode: "host"之后启动容器报错信息如下:

image.png,


docker-compose.yml文件部分内容如下:

image.png

二、你期待的结果是什么?实际看到的又是什么?

想着应该没什么问题,但是访问跟redis有关的接口时报错连不上redis

三、你正在使用的是什么产品,什么版本?在什么操作系统上?

正在使用springblade,3.0.0版本,在windows环境下开发,现往linux上部署

四、请提供详细的错误堆栈信息,这很重要。

image.png

五、若有更多详细信息,请在下面提供。

2条回答
  • 2021-03-08 16:15

    不需要改host模式,只需要保证docker内部可以连接到宿主机的ip以及redis端口就行了,保证redis端口正确开放,端口无误就可以。这与代码无关,与网络有关。如果连不到内外,就连接宿主机对外的外网地址。

    0 讨论(0)
  • 2021-03-08 17:34

    大佬,现在我用docker-compose部署了redis,但是有个问题,除redis的默认端口6379外,为什么gateway的端口也能连上redis呢,怎么将其对redis关闭

    0 讨论(0)
提交回复