如何从Docker容器连接到本地Redis服务器

我试图从docker容器内部连接到我的机器上的本地Redis服务器。 我到目前为止做了什么:

  • Redis在我的机器上运行(cann通过redis-cli连接到它)
  • 启动了一个交互式的Docker容器(从Ubuntu镜像)
  • 在容器内部安装了“redis-tool”
  • 尝试通过redis-cli连接到redis:“redis-cli -h 172.17.0.3 -p 6379”(通过容器内的ifconfig获取IP地址)
  • 有一个错误,说“连接拒绝”

有什么诀窍,我没有想到为了得到一个工作联系? 我已经尝试在我的redis.conf中设置“绑定0.0.0.0”,但没有效果。 我也尝试运行容器时转发端口6379到6379,但我得到一个错误,说该地址已被使用。

提前致谢!

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

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

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

你可以这样做:

  • 获取主机的IP,例如在ENVvariables$ host_ip中
  • 运行docker命令,如:
 docker run -it --add-host redis_server:$host_ip ubuntu bash 

现在从容器中,您将能够通过主机redis_server运行的主机名redis_server访问redis服务器