Macos 如何访问漫游虚拟机中运行的Redis

Macos 如何访问漫游虚拟机中运行的Redis,macos,ubuntu,redis,vagrant,Macos,Ubuntu,Redis,Vagrant,我们正试图使用Vagrant在Mac上运行Redis服务器(使用Ubuntu来宾操作系统) 遗憾的是,我们无法访问“流浪者”框中的Redis数据库 我们得到这个错误: 错误:Redis与127.0.0.1:6379的连接失败-读取EconReset 这是VirtualBox VM中的网络配置: 我们还需要向Vagrant文件添加什么才能将Redis公开给Mac (注意:使用Vagrant的原因不仅是为了让人们不用在主操作系统上安装redis就可以尝试redis,更重要的是为了确保应用程序的其他

我们正试图使用Vagrant在Mac上运行Redis服务器(使用Ubuntu来宾操作系统)

遗憾的是,我们无法访问“流浪者”框中的Redis数据库

我们得到这个错误:

错误:Redis与127.0.0.1:6379的连接失败-读取EconReset

这是VirtualBox VM中的网络配置:

我们还需要向Vagrant文件添加什么才能将Redis公开给Mac

(注意:使用Vagrant的原因不仅是为了让人们不用在主操作系统上安装redis就可以尝试redis,更重要的是为了确保应用程序的其他元素按预期运行)

这可能会有所帮助。我知道问题是关于从Windows连接,但解决方案主要是修改VM中的Redis配置,以便不将Redis仅绑定到Redis.conf中的本地端口,以便可以在主机上访问它(在您的例子中是Mac)


此外,根据您尝试访问Redis的方式,您可能能够在主机(Mac)上配置SSH隧道,以便访问Vagrant VM中的Redis服务器。我的案例最终通过这条路线连接到Vagrant VM中的Redis,以便使用Ember cli和Ember cli deploy在本地开发Ember JS应用程序。除了Vagrant设置之外,我碰巧在Docker容器中运行Redis。一次又一次地遇到这个问题,我想补充一下我的发现

事实上,确保与网络设备的绑定是0.0.0.0而不是127.0.0.1是至关重要的。由于我正在运行Docker,我必须确保容器正确运行:

docker run -d redis -p 0.0.0.0:6379:6379 redis
然后,除了已知的流浪配置外:

config.vm.network :forwarded_port, guest: 6379, host: 6379
瞧,在一个流浪的虚拟机中使用Docker运行Redis,可以从MacOSX主机系统访问它


这不需要更改Redis配置,因为Docker会处理这一问题。

您可以为Vagrant box提供一个专用IP,然后使用专用IP访问Redis

例如,假设您希望在漫游箱IP时配置192.168.33.10。只需在Vagrant文件中添加这一行

Vagrant.configure(2) do |config|
   config.vm.network 'private_network', ip: '192.168.33.10'
end

从现在起,你可以使用192.168.33.10访问你的vagrant box,这很奇怪,他们正在使用
127.0.0.1
作为私有IP,我认为vagrant会提示你一条警告消息,这不是真正安全的-删除这条线路或替换为你选择的私有IP,如果我知道这是旧的,但我无法用您的命令启动docker映像(转到状态退出)。是否因为映像现在已更新,并且端口已自动绑定?您有dockerfile的副本吗?您好@0v3rc10ck3d,很抱歉耽搁了。我现在不能检查,因为项目已经暂停了一段时间。不过,你可能会发现dockerhub上的信息很有用:谢谢@jhohlfeld,我找到了另一种解决方法:)