Can';t从Docker容器内部连接到Redis/Memcache
我有一个Docker映像,它封装了我们开发环境的所有工具。但是,在某些配置文件中运行应用程序将尝试连接到外部Redis/Memcache服务器 但是,它无法与这些服务器建立连接。在容器内ping时,它会找到主机的正确IP,但表示无法访问主机:Can';t从Docker容器内部连接到Redis/Memcache,docker,redis,memcached,docker-machine,Docker,Redis,Memcached,Docker Machine,我有一个Docker映像,它封装了我们开发环境的所有工具。但是,在某些配置文件中运行应用程序将尝试连接到外部Redis/Memcache服务器 但是,它无法与这些服务器建立连接。在容器内ping时,它会找到主机的正确IP,但表示无法访问主机: ping HOST PING HOST (CORRECT.IP) 56(84) bytes of data. From e856591c01e7 (172.17.0.3) icmp_seq=1 Destination Host Unreachable Fr
ping HOST
PING HOST (CORRECT.IP) 56(84) bytes of data.
From e856591c01e7 (172.17.0.3) icmp_seq=1 Destination Host Unreachable
From e856591c01e7 (172.17.0.3) icmp_seq=2 Destination Host Unreachable
From e856591c01e7 (172.17.0.3) icmp_seq=3 Destination Host Unreachable
From e856591c01e7 (172.17.0.3) icmp_seq=4 Destination Host Unreachable
From e856591c01e7 (172.17.0.3) icmp_seq=5 Destination Host Unreachable
From e856591c01e7 (172.17.0.3) icmp_seq=6 Destination Host Unreachable
Ping或curling其他网站,如google或facebook,工作完全正常
DockerMachine是默认设置,网络设置也是默认设置。在Mac OSX 10.10.5、Docker 1.12.1、Docker Machine 0.8.1上运行
有什么想法吗?我不知所措 Docker正在使用不同的网络模式。您可以尝试在“主机网络”中运行容器,以便它与运行docker机器的主机共享网络连接:
docker run --net=host your_image and other options
对于将来遇到此问题的任何人,请尝试使用ipv6和开放端口创建docker网络。我没有让它工作,但我相当肯定这是正确的道路。如果上述可能的解决方案不起作用。也许您应该检查memcache服务器配置以获取侦听的IP地址 memcache机器是另一个docker容器还是memcache的独立服务器 如果希望连接到主机的memcache服务器,可能需要将memcache配置为允许从本地IP以外的IP地址进行连接 如果您正在使用ubuntu(或类似软件),请使用编辑配置
nano /etc/memcached.conf
并找到以“-l 127.0.0.1”开头的行,通过用逗号分隔添加客户端计算机IP地址
例如,如果要从172.17.0.3和172.18.0.3进行连接,则替换为
-l 127.0.0.1,172.17.0.1,172.18.0.1
不幸的是,我也尝试了这个方法,但也出现了同样的错误。你解决过这个问题吗?我遇到了一个类似的问题。从未解决过,但如果让我猜的话,它与docker网桥和memcache/redis服务器有关,只能在专用网络中访问。我同意你的看法。我认为这是Docker for Mac的问题。网桥不可用。我找不到解决办法。我最终使用了Linux虚拟机。