docker中的localhost – neo4j
我正在尝试创build一个设置neo4j实例的dockerfile。 目前我有以下几点:
FROM neo4j:3.0 MAINTAINER Andy CMD curl \ -H "Content-Type: application/json" \ -X POST -d '{"password":"mypassword"}' \ -u neo4j:neo4j http://localhost:7474/user/neo4j/password
从这里开始,我build立图像并使用以下命令运行
docker run -p 7474:7474 myimage
虽然我能够访问我的主机上的localhost:4747
上的neo4j面板,但是打算在容器中运行的curl命令无法访问它自己的localhost实例。
所以我想我的问题是,我正确地做到这一点,如何从容器内调用本地主机?
为了澄清,我不希望curl请求逃离容器 – 它应该与容器内部的neo4j进行通信。
也许你想使用环境variables$NEO4J_AUTH
来控制authentication,如这里所解释的。
例如这个禁用身份validation
docker run -p 7474:7474 -e NEO4J_AUTH=none -d neo4j:3.0
您可能还需要检查neo4j:3.0
映像的入口点脚本 ,如果给出的选项不够用,您可以创build自己的版本。
你的容器只能curl; 根据上面的Dockerfile,你并不是在容器内部启动neo4j,当然这在localhost
上是不可用的。
如果您在另一个容器中运行它,则需要使用该容器的IP地址。
事实certificate,我设置密码的方法相当长。 在查看neo4j镜像的Dockerfile之后,我发现设置密码只需要我改变NEO4J_AUTH的环境variables, 如下所示:
FROM neo4j:3.0 MAINTAINER Andy ENV NEO4J_AUTH neo4j/password