如何从docker容器连接到本地redis服务器

时间:2017-11-19 11:41:36

标签: docker redis

我正在尝试从docker容器内部连接到我的计算机上的本地redis服务器。到目前为止我做了什么:

  • Redis正在我的机器上运行(通过redis-cli连接到它)
  • 启动了一个交互式docker容器(来自ubuntu映像)
  • 在容器内安装“redis-tool”
  • 尝试通过redis-cli连接到redis:“redis-cli -h 172.17.0.3 -p 6379”(通过容器内的ifconfig获取ip地址)
  • 收到错误消息“连接被拒绝”

为了获得有效连接,我没想到的诀窍是什么?我已经尝试在我的redis.conf中设置“bind 0.0.0.0”但是没有效果。我还尝试在运行容器时将端口6379转发到6379,但是我收到一条错误,说明该地址已被使用。

提前致谢!

3 个答案:

答案 0 :(得分:2)

你不应该连接到容器的ip,而是连接到主机的ip(你在主机上看到的docker bridge)。看看你的问题应该是172.17.0.1

答案 1 :(得分:1)

你可以这样做:

  • 获取主机的IP,例如在ENV变量$ host_ip
  • 运行docker命令,如:
redis_server

现在,从容器内部,您将能够通过主机上运行的主机名{"state": "AK", "tweet": "hello world"} {"state": "MN", "tweet": "hello cruel world"} {"state": "AK", "tweet": "hello cool world"} 访问redis服务器

答案 2 :(得分:0)

在容器之间使用链接 docker run -d --name=redis_xyz redis

docker run -it --link redis_xyz:redis_local redis_cli_image redis-cli -h redis_local