引言

​ 本文主要针对开源图谱hugegraph做了docker打包处理,hugegraph在windows上往往不是特别方便,也很容易崩,故写此文。

准备

  • 本地能跑通的hugegraph三件套:
    • hugegraph-0.10.4
    • hugegraph-loader-0.10.0(数据导入配件 不建议在docker内部使用,很容易内存不够,可以将本地导通的g/m/s文件夹放进hugegraph-0.10.4下即可(RockDb))
    • hugegraph-studio-0.10.0
  • 依赖的编译环境只有jdk8,下载好x86 linux版即可

构建Docker镜像

​ 新建一个构建镜像的目录(hugegraph-docker),用于存放原材料:

​ 编写Dockerfile脚本文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
FROM centos
MAINTAINER erickun<847473488@qq.com>

COPY readme.txt /usr/local/readme.txt

ADD jdk-8u202-linux-x64.tar.gz /usr/local/
COPY hugegraph-tools-1.4.0 /usr/local/

RUN yum -y install vim
ENV MYPATH /usr/local
WORKDIR $MYPATH


ENV JAVA_HOME /usr/local/jdk1.8.0_202
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar


CMD /usr/local/hugegraph-tools-1.4.0/services/hugegraph-0.10.4/bin/init-store.sh && /usr/local/hugegraph-tools-1.4.0/services/hugegraph-0.10.4/bin/start-hugegraph.sh && /usr/local/hugegraph-tools-1.4.0/services/hugegraph-studio-0.10.0/bin/hugegraph-studio.sh

注意:

  • ADD :可以将tar压缩包自动解压到centos系统中对应路径下 (ADD 能解压压缩文件并把它们添加到镜像中,也从 url 拷贝文件到镜像中),COPY则是将资源拷贝至镜像,两者的基本功能类似
  • ENV:配置环境变量,此处配置了jdk8的环境
  • RUN: 在镜像生成的过程中执行的命令,多与系统相关,如此处安装vim工具
  • CMD:在镜像docker run了之后,容器初始执行的命令

执行打包命令:

1
docker build -t testhugegraph .

为镜像起名为testhugegraph,不要忘记最后一个点

生成完后,可以用docker images来查看是否生成成功,再来用此镜像新建一个容器:

1
docker run -d -p 8088:8088 -p 8081:8080 -it --name testhugegraph testhugegraph
  • -p:做端口映射: <宿主机端口>:<容器内部端口>,当然也可以写进Dockerfile的EXPOSE,为方便随时指定端口,不建议写进EXPOSE
  • -it:交互模式
  • –name:容器的名字
  • testhugegraph:从testhugegraph镜像中来生成一个叫testhugegraph的容器

内外端口映射

​ 实战中,内部端口可以访问http://127.0.0.1:8080(curl http://127.0.0.1:8080),但是外部访问8081,网页报错:报错:==该网页无法正常运作==

原因:内外绑定的默认host是0.0.0.0,而不是127.0.0.1,故要修改内部服务启动的host: