如何从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服务器