You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker容器连接本地Redis数据库失败问题求助

Docker容器连接本地Redis失败的解决办法

错误原因

你代码里写的host='localhost',在Docker容器里指的是容器自己的内部网络环境,不是你运行Docker的电脑(也就是宿主机)。所以容器里的Python程序找不到宿主机上的Redis服务,就会抛出连接错误。

解决方案(二选一即可)

方案1:改用宿主机IP连接

  1. 找到宿主机的本地IP:
    • Linux/macOS终端执行 ifconfig,Windows命令行执行 ipconfig,找到类似192.168.1.100这类的私有IP地址。
  2. 修改Python连接代码的host为这个IP:
redis = redis.Redis(
    host='192.168.1.100',  # 替换成你的宿主机实际IP
    port=6379,
    charset="utf-8",
    decode_responses=True)
  1. 重新构建镜像并运行:
sudo docker build -t scraper .
sudo docker run scraper

注意:要确保Redis允许外部IP访问——打开Redis配置文件redis.conf,把bind项改成bind 0.0.0.0(允许所有IP访问),或者加上你的宿主机IP,然后重启Redis服务。

方案2:用宿主网络模式运行容器

这种方法不用修改代码,直接让容器共享宿主机的网络:
运行容器时添加--net=host参数:

sudo docker run --net=host scraper

这样容器里的localhost就等同于宿主机的localhost,代码不用改就能正常连接Redis。

内容的提问来源于stack exchange,提问作者Sid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 08:40:42