1
killy OP 吃完晚饭开始搞到现在,大佬们,帮帮忙!
|
2
stuxnet 2020-02-19 01:35:21 +08:00 via Android
docker-compose.yml 怎么写的?
|
3
q1angch0u 2020-02-19 02:04:56 +08:00
既然都在 docker 里 ping redis 了,为何不 t 一下 6379 呢?
|
4
iamdavidzeng 2020-02-19 08:48:29 +08:00
有没有使用 host.docker.internal 去定义内部网络访问?直接用 localhost 是无效的。
|
5
nvkou 2020-02-19 09:44:38 +08:00 via Android
感觉是你 redis 的问题。默认好像是不允许非本地连接的。也就是你 Redis 的监听地址和安全设置。
|
6
liuzhedash 2020-02-19 10:20:35 +08:00
@nvkou #5 看楼主意思是本来 docker host 和 redis 就不在同一个服务器,如果 docker host 上面可以正常访问,容器内访问也应该没区别。
|
7
killy OP @stuxnet 没有用 docker-compose,用 Dockerfile,本地 maven 编译之后,服务器上运行镜像
|
8
killy OP @borui 刚试了下,在 docker 中使用 curl xxx:6379 没有任何信息,使用 curl 命令测试其他服务器的端口是可以正常访问,这是为什么?
|
9
ChristopherWu 2020-02-19 13:34:28 +08:00
两个问题:
redis-cli 能连上去吗 docker 容器的网络是什么,host 吗 |
10
killy OP @ChristopherWu 容器的网络是 overlay,可以在容器内先连接主机,在进入 redis
|
11
AngryPanda 2020-02-19 22:52:15 +08:00
@killy #10 先连接主机,指的是 ssh 到 redis host ?如果是,那应该就是安全设置的原因了
|
12
killy OP @AngryPanda 是的,现在没用 docker,直接在服务器上跑项目,但依然是不能连接 redis
|
13
killy OP 看来不是 docker 的网络问题,是项目代码问题,但是本地环境可以正常访问啊,为什么放在线上就不行了呢?
|
14
AngryPanda 2020-02-20 11:53:48 +08:00
@killy 参考 5 楼同学说的,你看看你的 redis 是不是监听在本地 IP 上的。是不是不允许远程访问呢?
|
15
lewinlan 2020-02-20 14:19:02 +08:00
同意 5 楼。去看看 redis 监听设置是不是默认的 127.0.0.1,这样的话其他容器访问不了的。
改成 0.0.0.0 |