繁体   English   中英

如何访问在Vagrant虚拟机中运行的Redis

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM