无法连接到 docker redis
Posted
技术标签:
【中文标题】无法连接到 docker redis【英文标题】:Can't connect to docker redis 【发布时间】:2018-07-12 08:54:48 【问题描述】:我有一个包含下一张图片的 docker-compose 文件:
redis:
image: redis
container_name: redis
ports:
- 6379:6379
我预计容器名称将被公开,我将能够使用 redis:6379 uri 进行连接,但我做不到。这是配置:
fun jedisLocalConnectionFactory(): JedisConnectionFactory
val jedisConFactory = JedisConnectionFactory()
jedisConFactory.hostName = "redis"
jedisConFactory.port = 6379
return jedisConFactory
如何暴露这个redis服务并连接到它?我尝试了很多不同的组合,没有任何运气..
【问题讨论】:
如果你shell进入容器,你能看到redis是否真的在监听6379端口吗?试试'netstat -na |当你进入那里时,grep 6379'。可能是它只在 localhost 上侦听并且不允许端口转换正确发生? 【参考方案1】:使用容器名称连接只能使用用户定义的网络。这是从 Docker 文档中捕获的
Docker 不支持在默认网桥 >network 上自动发现服务。如果您希望容器通过容器名称解析 IP 地址,>您应该改用用户定义的网络。 https://docs.docker.com/engine/userguide/networking/
以此为参考:
services:
springboot:
image: springboot
networks:
- my-net
redis:
image: redis
container_name: redis
ports:
- 6379:6379
networks:
- my-net
networks:
my-net:
driver: bridge
【讨论】:
谢谢!我从这个例子中添加了 my-net。我可以使用哪个 uri 访问服务? 您可以直接以redis
访问它。或者给它一个网络别名。以上是关于无法连接到 docker redis的主要内容,如果未能解决你的问题,请参考以下文章
无法从外部 docker 连接到 dockerized redis 实例