[英]How to access Redis running in Vagrant Virtual Machine
我们正在尝试使用Vagrant在Mac上运行Redis服务器(使用Ubuntu Guest OS)和这个Vagrantfile
遗憾的是,我们无法访问Vagrant Box中的Redis数据库。
我们收到此错误:
Error: Redis connection to 127.0.0.1:6379 failed - read ECONNRESET
这是VirtualBox VM中的网络配置:
我们需要添加到Vagrantfile暴露的Redis到Mac 什么 ?
(注意:使用Vagrant的原因是让人们尝试redis而不必在主操作系统上安装它,但更重要的是确保应用程序的其他元素按预期运行)
这可能会有所帮助https://serverfault.com/questions/248248/cannot-connect-to-redis-installed-on-virtualbox-running-ubuntu-from-windows-7 。 我知道问题是关于从Windows连接,但解决方案主要是修改VM中的Redis配置,以便不将Redis仅绑定到redis.conf中的本地端口,以便可以在主机上访问它(Mac)在你的情况下)。
此外,根据您尝试访问Redis的方式,您可以在主机(Mac)上配置SSH隧道,以便访问Vagrant VM中的Redis服务器。 为了我的案例,我最终选择了这条路线连接到Vagrant VM内的Redis,以便使用ember-cli进行本地开发Ember JS应用程序,并使用ember-cli-deploy-redis部署ember-cli
除了Vagrant设置之外,我碰巧在Docker容器中运行Redis。 一次又一次地遇到这个问题,我想补充一下我的发现。
确实确保绑定到网络设备是0.0.0.0而不是127.0.0.1是必不可少的。 因为我正在运行Docker,所以我必须确保容器正确运行:
docker run -d redis -p 0.0.0.0:6379:6379 redis
然后,除了已知的Vagrant配置:
config.vm.network :forwarded_port, guest: 6379, host: 6379
并且:使用Docker在Vagrant虚拟机中运行Redis,能够从Mac OSX主机系统访问它。
这是在不改变Redis配置的情况下,因为Docker负责这一点。
您可以为Vagrant框提供专用IP,然后使用专用IP访问redis。
例如,假设您要配置192.168.33.10作为Vagrant box IP。 只需在Vagrant文件中添加此行。
Vagrant.configure(2) do |config|
config.vm.network 'private_network', ip: '192.168.33.10'
end
从现在开始,你可以使用192.168.33.10访问你的流浪盒
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.