# 对河图进行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后设置创建的数据库名称。