无法通过172.17.0.2:6379连接Docker Redis的问题求助
解决Docker Redis容器连接被拒绝(Error 111)的问题
以下是排查和解决该问题的具体步骤:
检查容器运行状态
先确认my_redis容器是否处于运行状态:docker ps如果容器状态不是
Up,先启动容器:docker start my_redis若启动失败,查看容器日志定位问题:
docker logs my_redis确认Redis绑定地址配置
默认Redis可能仅绑定127.0.0.1,导致容器外无法通过内网IP访问。进入容器查看配置:docker exec -it my_redis cat /etc/redis/redis.conf | grep bind如果输出是
bind 127.0.0.1,需要修改为允许所有IP访问。最简单的方式是删除现有容器,重新创建时指定启动参数:docker rm -f my_redis docker run -d --name my_redis redis redis-server --bind 0.0.0.0验证端口映射或网络连通性
- 若不想修改Redis绑定配置,可创建容器时映射宿主机端口:
此时Python连接可直接使用docker rm -f my_redis docker run -d --name my_redis -p 6379:6379 redislocalhost:import redis r = redis.Redis(host='localhost', port=6379) print(r.set('test', 'hello')) - 测试宿主机到容器IP的连通性:
若不通,检查宿主机防火墙是否拦截了Docker网段流量,可临时关闭防火墙测试:nc -zv 172.17.0.2 6379sudo ufw disable
- 若不想修改Redis绑定配置,可创建容器时映射宿主机端口:
检查Python Redis库安装
确保已正确安装Redis Python客户端:pip install redis连接时可先执行
ping()测试连通性:import redis r = redis.Redis(host='172.17.0.2', port=6379) print(r.ping())
内容的提问来源于stack exchange,提问作者mino
相关产品推荐
相关产品推荐

