1、文档简介
文档相当于采用离线的方式,生成neo4j的镜像,并安装。文档大约五千字,阅读大约需要半小时。
通过本文档可以获得以下内容
- neo4j企业版镜像的生成
- neo4j 企业版图库的安装(单节点、ha集群、因果集群)
- 基础镜像 + 安装过程
2、图库简介
neo4j是一个高性能的nosql图形数据库,同时是一个嵌入式、基于磁盘并且拥有完整事务特性的java持久化存储引擎,他的数据存储于图中,而不是表中。neo4j也可以被看作是一个高性能的图引擎。
注:可以查看一个电视剧,查询它的演员表,初步理解图
3、安装步骤
1、首先需要两个东西,一个是基础镜像openjdk:8-jdk-silm,一个是neo4j-3.5.4企业版的安装包(neo4j-enterprise-3.5.4-unix.tar)
2、自己编写dockerfile
3、生成最终的neo4j镜像
4、安装neo4j单机版、ha集群或者因果集群
4、封装neo4j-3.5.4企业版镜像
4.1 下载openjdk:8-jdk-slim镜像,上传到服务器
之前由于某种原因,docker-hub中的镜像无法拉取,解决方式一般为两种,第一种通过VPN工具连接下载;一种是通过国内代理进行下载,可以自行搜索docker hub 国内代理进行尝试(据说目前已经解封,不知真假)。此处我使用的是我私有镜像库中的镜像。
为什么要安装企业版,因为只有企业版可以建立集群(尤其是因果集群),ha集群(主备)可以通过neo4j社区版+nfs(网络文件系统)+ keepalived 来完成类似于ha集群的模式。这个之后可能会在其他文档中讲述。
注:ha集群貌似在图库后期已经废弃
4.2 加载镜像
通过docker load将镜像加载
docker load -i openjdk.tar.gz
4.3 上传neo4j安装包
4.4 解压neo4j安装包,重命名在打包
这一步的意义是为了在后面的dockerfile中,可以直接add到镜像中,从而避免使用neo4j-enterprise-3.5.4 路径
tar -zxvf neo4j-enterprise-3.5.4-unix.tar.gz
mv neo4j-enterprise-3.5.4 neo4j
tar -zcvf neo4j-enterprise-3.5.4-unix.tar.gz neo4j
4.5 编写dockerfile
在编写dockerfile之后生成镜像时,可能会将当前目录下的内容传递进去,所以建议保持当前目录中,只有dockerfile文件和要安装的内容。所以我这里在创建一个空的目录,并将安装包移入其中
4.5.1 准备工作
此步骤原因在代码块中说明
# 创建一个目录,其中只有dockerfile 和安装包
mkdir images
# 将安装包移入新建的目录中
cp neo4j-enterprise-3.5.4-unix.tar.gz images/
# 进入 images目录
cd images
4.5.2 创建容器内neo4j的启动脚本
此步骤是因为在启动容器的时候,设置neo4j用户的密码,即修改了neo4j用户的密码是neo4j
# 创建容器内neo4j的启动脚本
cat >env.sh<< EOF
#! /bin/bash
source /etc/profile
/var/lib/neo4j/bin/neo4j-admin set-initial-password \${neo4j_password}
/var/lib/neo4j/bin/neo4j start
tail -f /dev/null
EOF
相关参数说明:
- source /etc/profile 是为了能够确保容器中系统环境变量可以使用
- neo4j-admin set-initial-password \${neo4j_password}:是通过admin工具,在启动时,修改掉默认密码neo4j,其中的\是为了解决在cat > env.sh