当前位置: 首页 > 知识库问答 >
问题:

linux - Docker中Redis容器IP地址固定为127.0.0.1怎么解决?

杜砚
2024-03-22

docker中的redis容器IP地址一直都是127.0.0.1,无法改变?

背景:把Springboot项目部署到docker了,然后在运行项目时,Caused by: org.redisson.client.RedisConnectionException: Unable to connect to Redis server: /127.0.0.1:6379
尝试:1、修改了redis.conf0c77096b52b4e182b803527e2a006d4.png
2、修改项目的配置文件image.pngcbfb10cf7845a6fc1fadd68b68a02bb.png
3、这是redis容器,name为myredis,而且mysql和myredis都connect到了heima网络里面了image.png
在修改配置后,我都有重启各个容器,但仍然无效

共有5个答案

宦树
2024-03-22

把两个容器加到同一个网络中, 可以用容器名字访问对应容器的网络.

用docker network create 创建一个网络, 启动容器时, 添加参数 --netword=新建的docker网络名

方玄天
2024-03-22

自制的镜像把redis的启动命令改成 redis-server /etc/redis/redis.conf --bind 0.0.0.0

使用官方镜像按照官方指引:https://hub.docker.com/_/redis

docker run --name some-redis -d redis redis-server --save 60 1 --loglevel warning --bind 0.0.0.0

安全起见 建议指定network并且宿主机不开放redis端口

司徒俊良
2024-03-22

分别登录的你的程序容器和redis容器里,ping下你设置的host,看能ping通不。

曾嘉福
2024-03-22

配置文件中的redis.host 改成宿主机的ip地址。

苏宾鸿
2024-03-22

看你的截图,配置文件里面host填写的是容器名字,然后错误提示也是java程序给的异常,提示连接不到127.0.0.1:6379这个地址。

按理说这里应该解析到的是容器内部的地址,通常应该是172.x.x.x这样的IP。

你试试启动一个新容器 docker run --network heima -it --rm busybox sh,然后在进入容器后,试试ping一下myredis或者mysql,看看ping命令解析到的IP是什么。我感觉这里可能是程序哪里有问题,不像是redis或者docker的问题。

正常情况下,在执行ping的时候肯定是能ping通的,因为都在一个heima的网络下。ping的IP也应该是对应的容器内的IP,肯定不可能会是127.0.0.1这个地址。那么问题大概就是java程序的问题了,我猜可能是读错配置文件了,或者在哪里写死了。

 类似资料:
  • 本文向大家介绍Docker容器固定IP分配详解,包括了Docker容器固定IP分配详解的使用技巧和注意事项,需要的朋友参考一下 我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络模式,Docker有以下4种网络模式: host模式,使用--net=host指定。 container模式,使用--net=container:NAME_or_ID指定。 none模

  • 假设我有一个名为“mynet”的网络,我想启动一个IP地址绑定到192.168.23.2的容器。 我开始使用的代码是: 我从这里做什么?我正在有效地从中寻找与选项等效的选项。

  • 问题内容: 我在ubuntu 14.04上运行它,并将其设置为静态ip,然后将其从公共ip路由到防火墙。我试图将我的后端API设置为在docker容器中运行,并且被两件事弄糊涂了。 1.)我如何将ip 映射到容器的ip,以便知道如何将传入的数据包发送到容器(如果可能,动态地)。 2.)如果尚未以这种方式完成,该如何做到这一点,以使我不必在每次重新运行该Docker容器时都进行设置? 提前致谢! 问

  • 正如标题所说。我需要能够检索docker主机的IP地址,以及从主机到容器的端口映射,并在容器内部完成此操作。

  • 问题内容: 如何获取此容器内的容器ip地址? ‘docker inspect $ hostname …’不适合,因为我不将/var/run/docker.sock主机文件共享到容器。 问题答案: 由于IP地址位于/ etc / hosts的第一行中,因此您可以在容器中执行awk命令,该命令显示/ etc / hosts的第一行的第一个单词

  • 本文向大家介绍Docker 获取Docker机器的IP地址,包括了Docker 获取Docker机器的IP地址的使用技巧和注意事项,需要的朋友参考一下 示例 要获取docker机器的IP地址,您可以使用以下命令: