问题出在您的绑定上,您应该设置以下内容:
bind 0.0.0.0
这将设置redis
为绑定到所有可用接口,在具有一个接口的容器化环境中,(eth0
)和回送(lo
)redis将绑定到上述两个接口。您应该考虑通过中的其他指令config file
或使用外部工具(例如)添加安全措施firewalls
。因为使用这种方法,每个人都可以连接到您的redis
服务器。
默认设置为bind 127.0.0.1
,此设置将导致redis
仅在回送接口上侦听,并且只能从容器内部进行访问。(出于安全考虑)
sudo docker run -d --name redis-test -p 6379:6379 -v /path/to/redisconf/redis.conf:/redis.conf redis redis-server /redis.conf
现在在redis-tools
已安装的Docker主机上进行验证:
redis-cli
127.0.0.1:6379>
127.0.0.1:6379> set farhad likes:stackoverflow
OK
127.0.0.1:6379> get farhad
"likes:stackoverflow"
127.0.0.1:6379>
您还可以redis
通过以下方式从外部主机连接到容器:
redis-cli -h 'IP-address-of-dockerhost-running-redis-container'