# 对河图进行docker容器化

# 编辑镜像配置文件

  • 解压河图安装包:
unzip -d hetu hetu-2024.5.zip

提示:

hetu-2024.5.zip为河图安装包名称。

  • 编辑Dockerfile文件:
vi Dockerfile
  • 将以下内容复制到Dockerfile文件中:
  FROM openjdk:17.0.2-jdk 
  VOLUME /tmp
  RUN echo "Asia/Shanghai" > /etc/timezone
  RUN mkdir /hetu
  ADD hetu/data /hetu/data
  ADD hetu/lib /hetu/lib
  ADD hetu/config /hetu/config
  ADD hetu/web /hetu/web
  ADD hetu/bin /hetu/bin
  ADD hetu/plugin /hetu/plugin
  RUN chmod +x /hetu/bin/*.sh
  RUN mkdir /etc/hetu
  RUN touch /etc/hetu/license
  RUN touch /etc/hetu/dbconfig.properties
  RUN ln -s /etc/hetu/license /hetu/license
  RUN ln -s /etc/hetu/dbconfig.properties /hetu/config/dbconfig.properties
  EXPOSE 7778/tcp
  CMD /hetu/bin/start.sh && tail -f /hetu/logs/hetu_console.log
  • 按Esc键,输入:wq,保存并退出。

提示:

FORM后为基础镜像名称,ADD后为安装包文件的路径,EXPOSE后为容器暴露的端口,CMD后为容器启动时执行的命令。

# 构建镜像

  docker build -t hetu:2024.5 .

提示:

hetu:2024.5为镜像名称和版本号,需要根据安装版本进行调整。最后有一个.,代表Dockerfile文件在当前目录下。也可指定Dockerfile的文件路径。

# 验证和运行镜像

  • 查看镜像是否存在:
    docker images
    
  • 出现如下界面表示打包完成:
    REPOSITORY        TAG        IMAGE ID       CREATED          SIZE
    hetu              2024.5     b932d4587572   26 minutes ago   954MB
    
  • 运行容器:
    docker run -v /opt/hetu/work/:/hetu/work/ -v /opt/hetu/etc/config/:/etc/hetu/ -d --name hetu -p 7778:7778 hetu:2024.5
    

    提示:

    -p为端口映射,-v为宿主机的绝对路径:容器内的绝对路径。用于数据持久化防止容器被删除后文件丢失,可根据使用具体情况进行添加。hetu:2024.5为镜像名称和版本号,需根据安装版本进行调整。

  • 查看运行日志:
docker logs -f hetu
  • 出现如下界面表示容器运行成功:
<<太极河图数据智能分析与应用平台>>   (试用)  (v2024.5.0)
-----------------------------------------------
--  日期:2024-10-21
--  类型:标准版
--  授权:未授权
-----------------------------------------------

2024-10-21 17:29:01 HeTu start success
  • 浏览器访问http://ip:端口/admin/index.html,如:http://localhost:7778/admin/index.html。 即可访问河图。
  • 停止容器:
docker stop hetu
  • 删除容器:
docker rm hetu
  • 重新部署河图: 如需改变容器中部署的河图,需要删除当前容器重新操作上述步骤。

# 镜像导出

docker save -o hetu.tar hetu:2024.5

# 导入镜像

docker load -i hetu.tar 

# 运行MYSQL镜像(可选)

  • 如需要使用到同服务器下的mysql数据库,可运行mysql容器:
    docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=hetu_mysql -p 3306:3306 -d mysql:8.4.2
    

    提示:

    --name为容器名称,-p为端口映射,-e MYSQL_ROOT_PASSWORD后设置mysql密码,-e MYSQL_DATABASE后设置创建的数据库名称。

Last Updated: 10/22/2024, 9:30:18 AM