无法从Docker容器内部连接到Redis/Memcache
我有一个Docker Image,它封装了我们开发环境的所有工具。但是,在某些配置文件中运行应用程序将尝试连接到外部Redis/Memcache服务器。无法从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
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
爆震或卷曲的其他网站,如谷歌或Facebook,上班完全没问题。
与网络设置一样,DockerMachine是默认设置。在Mac OSX 10.10.5上运行,Docker 1.12.1,Docker-Machine 0.8.1
任何想法?我很茫然。
Docker使用不同的网络模式。你可以尝试运行在“主机网络”的容器,所以它会共享主机的网络连接运行的泊坞窗机:
docker run --net=host your_image and other options
什么是docker ps
输出和你是怎么运行的容器?
'/ usr/local/bin/docker run --rm -it -h MYHOSTNAME -p 9000:9000 -p 6379:6379 -p 8000:8000 -p 5005:5005 -p 11213:11213 -P --name web -v $ projectPath:/ myProject/myImage' – mooooooose
'97bbca4ed35c myImage“/ bin/sh -c'bash -C”6秒前上5秒0.0.0.0:5005->5005/tcp,0.0.0.0:6379-> 6379/tcp,0.0.0.0:8000->8000/tcp,0.0.0.0:9000->9000/tcp,0.0.0.0:11213->11213/tcp web' – mooooooose
你有没有检查是否有一些网络问题?另请参阅:http://superuser.com/a/1113471/601557 – RichArt
对于将来出现此问题的任何人,请尝试使用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
不幸的是,我也试过这个,它给出了同样的错误。 – mooooooose