Mac 本地以 docker 方式配置 neo4j

写在前面

本篇主要记录在 Mac 本地上以 docker 形式部署 neo4j,整体来讲并不复杂,docker 相关东西不再赘述。这篇文章给了我很多帮助。

首先需要 neo4j 的镜像

# docker hub 有现成的 neo4j 镜像,就用官方的第一个,拉取到本地即可。
(base) NanaLvs-MacBook-Pro:~ username$ docker search neo4j
NAME                                DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
neo4j                               Neo4j is a highly scalable, robust native gr…   999       [OK]       
tpires/neo4j                        Neo4j is a highly scalable, robust (fully AC…   82                   [OK]
kbastani/neo4j-graph-analytics      Graph analytics engine for Neo4j using Apach…   28                   [OK]

# 虽然我已经更新了国内的镜像源,但是安装时仍然等了很久,需要点耐心,具体耗时没跟进。
(base) NanaLvs-MacBook-Pro:~ username$ docker pull neo4j
# 查看本地的镜像 确认 neo4j 成功
(base) NanaLvs-MacBook-Pro:~ username$ docker images

做 neo4j 的容器

有了 neo4j 的镜像之后,就可以做容器了。后面很多操作需要重启容器才会生效。

端口

neo4j 使用 7474 和 7687 两个端口,我们指定其具体的映射,从容器的两个端口号映射到本地的端口号,为了方便记忆,端口号不变。

-p 7474:7474 -p 7687:7687 

文件夹映射

neo4j 需要 4 个文件夹,分别是 data、logs、conf、import,分别用来存放数据、运行日志、配置文件、导入 neo4j 构建数据库的源数据(会同步到容器中,包括节点文件和关系文件)。我们在本地也建 4 个文件夹,与 neo4j 容器中的一一做映射。做完映射之后,方便我们后面根据需要将数据导入到 neo4j 的容器中。为了清晰和方便,一般都是建议单独建立一个文件夹来存放刚刚提到的 4 个文件夹,比如在 user 下面建立文件夹 Neo4j,再在其下面建立刚刚说的 4 个文件夹。

# 映射本地和容器的文件夹,冒号前的是本地文件夹路径,冒号后是容器的对应文件夹
# 依次是 data、logs、conf、import
-v /home/neo4j/data:/data   
-v /home/neo4j/logs:/logs 
-v /home/neo4j/conf:/var/lib/neo4j/conf   
-v /home/neo4j/import:/var/lib/neo4j/import

设定数据库的名字和访问密码

# neo4j 就是用户名,斜杠后面的 password 就是密码
--env NEO4J_AUTH=neo4j/password

串起来的代码如下(shell 中运行当然不能直接回车了,这里只是为了方便阅读)。可以自定义 name 和 auth,路径也要根据自己的实际情况修改,最后 neo4j 意思是用 neo4j 的镜像。

docker run -d 
--name container_name 
-p 7474:7474 -p 7687:7687 
-v /home/neo4j/data:/data 
-v /home/neo4j/logs:/logs 
-v /home/neo4j/conf:/var/lib/neo4j/conf 
-v /home/neo4j/import:/var/lib/neo4j/import 
--env NEO4J_AUTH=neo4j/password 
neo4j

浏览器方式打开

上面的完成之后,我们在本地浏览器打开 localhost:7474 就能看见界面了,输入自己刚刚设置的用户名和密码就可以登录了。

修改 neo4j 的 conf 配置文件,这部分我也就是直接按照资料做的,找到前面说的 4 个文件夹中的 conf 文件夹进入,vim 查看 neo4j.conf 文件,对其进行修改。

dbms.connectors.default_listen_address=0.0.0.0  //指定连接器的默认监听ip为0.0.0.0,即允许任何ip连接到数据库

dbms.connector.bolt.listen_address=0.0.0.0:7687  //取消注释并把对bolt请求的监听“地址:端口”改为“0.0.0.0:7687”
dbms.connector.http.listen_address=0.0.0.0:7474  //取消注释并把对http请求的监听“地址:端口”改为“0.0.0.0:7474”

导入数据到 neo4j 的数据库

至此,你的 neo4j 容器中还是空空的,没有任何数据。下一步就是将格式正确的 csv 文件导入到 neo4j 中。

# 命令行交互方式进入容器
(base) NanaLvs-MacBook-Pro:~ username$ docker exec -it 前面创建的容器名 /bin/bash
# 进入容器中后执行下面语句(当然也不能有回车)
bin/neo4j-admin import 
# 设置本次数据导入到哪个数据库中,这里就是导入到 mkg 数据库中了,如果数据库不存在会自动创建
--database=mkg 
# 节点相关文件
--nodes import/entity_header.csv,import/entity.csv 
# 关系相关文件
--relationships import/relation_header.csv,import/relation.csv 
# 慎用,强制重新导入
--force

将刚刚建立的 mkg 数据库作为默认数据库,需要去 conf 配置文件里面增加:

dbms.active_database=graph.db

重启之后,去浏览器在数据库图标下就能看见自己导入的数据了。比如这样:
Mac 本地以 docker 方式配置 neo4j_第1张图片

你可能感兴趣的:(basic,运维,docker,macos,容器)