容器内redis-cli是可以直接连上的,但是在另一台服务器上就不能用外网ip来连了

虽然我创建redis容器时声明了映射TCP 6379。

image linux/0805 是我本地提交镜像 基于 centos7+jdk8

      1.安装 yum install mongodb-org

2.安装 yum install redis

提交镜像到本地 

docker commit e955f248e4ec linux/0805 

 运行本地镜像 

docker run -itd  -p 6379:6379  -p 27017:27017   --name=linux0805  --privileged  linux/0805   /usr/sbin/init 

 mongo 链接没有问题 端口也能通但是 redis-cli -h 127.0.0.1 -p 6379 就是不通 提示Error: Server closed the connection

 

 

尝试修改下redis的配置 

vim /etc/redis.conf

 

在这行后面加上docker给容器分配的ip:
bind 127.0.0.1 172.17.0.3

其实127.0.0.1在docker容器里可能没什么用,不过我保留着没有动它。

反思,docker在映射端口问题上,除了要注意某些应用需要声明映射UDP协议外(比如stun/turn),还要小心某些TCP应用默认只监听127.0.0.1这一个IP,而忽略了宿主机映射过来的IP。