docker镜像化产品
2025年1月13日大约 2 分钟
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后设置创建的数据库名称。