如何从Google云端平台上的Docker镜像使用neo4j

我想从谷歌云壳运行neo4j,我已经ssh'd进入我的项目。

目前我正在使用以下来运行neo4j :

docker run \ --publish=7474:7474 \ --volume=$HOME/neo4j/data:/data \ --volume=$HOME/neo4j/logs:/logs \ neo4j:3.0 

该命令工作并打印下面的输出:

 Starting Neo4j. 2017-12-13 03:22:34.661+0000 INFO ======== Neo4j 3.0.12 ======== 2017-12-13 03:22:34.681+0000 INFO No SSL certificate found, generating a self-signed certificate.. 2017-12-13 03:22:35.163+0000 INFO Starting... 2017-12-13 03:22:35.631+0000 INFO Bolt enabled on 0.0.0.0:7687. 2017-12-13 03:22:37.966+0000 INFO Started. 2017-12-13 03:22:39.041+0000 INFO Remote interface available at http://0.0.0.0:7474/ 

但是,当我按照http://0.0.0.0:7474/的链接,它redirect到类似https://7474-dot-3282369-dot-devshell.appspot.com/?authuser=0 ,我得到错误:

 Error: Could not connect to Cloud Shell on port 7474. 

我能做些什么不同,或者你需要什么额外的信息? 谢谢。

我认为你正面临以下两个问题之一:

1.如果你在另一台机器上运行,并且服务器在那里运行

问题是您从Google云端Shell中访问了一个实例,然后通过docker启动了服务器。 在这一点上,我认为你连接(不是有意的)到端口7474上的云端Shell,点击同一个窗口的“Web预览”! 但服务器运行在不同的机器上!

因此,云端Shell通知您不在端口7474上侦听。要解决此问题,您需要检索实例的公共/外部IP,创build允许TCP:7474通信的防火墙规则,并使用http连接到任何浏览器:// ip-your-machine:7474 。

2.如果您在Google Cloud Shell中运行服务器

首先,您不应该在Google云端Shell上运行服务器,它不是一个普通的虚拟机,您不应该依赖它。

顺便说一句,我一步一步地跟着你做了什么:我访问了Google Cloud Shell,我已经运行你的代码,获得了相同的输出,但是当我完成了“Web预览”之后,我正确地可视化了neo4jlogin页面。

因此,我相信如果您在这里运行服务器,您在检查“Web预览”之前无意间将其停止。

PS

您被redirect到的奇怪的域名: https ://7474-dot-3282369-dot-devshell.appspot.com是一个域名,正好指向端口7474上的Google Cloud Shell#3282369。

您将被自动redirect点击Cloud Shell中的链接(因为您的计算机无法达到0.0.0.0 )。