基于 Alpine 基础镜像构建 H2 Database 镜像

基于Alpine基础镜像构建H2 Database镜像

0. 说明
x.x.xxx 为h2版本,例: h2-1.4.197.jar
1. H2数据库、Docker镜像文件

Platform-Independent Zip

alpine-3.8.0-1.0.tar

2. 解压下载的压缩文件, 解压后目录如下
h2-yyyy-mm-dd(此层文件夹省略)
-h2
   -bin
	h2.bat //Windows 控制台启动脚本
	h2.sh //Linux 控制台启动脚本
	h2-x.x.xxx.jar //jar包
	h2w.bat //Windows 控制台启动脚本(不启动命令窗口)
   +docs //帮助文档
   +service //通过wrapper配置为服务(限Windows)
   +src //源代码
   build.bat //Windows构建脚本
   build.sh //Linux构建脚本
3. 修改 /bin 文件夹下的 h2.sh 文件如下, 作为新的启动脚本(原脚本以Console方式启动, 新建一个新的启动脚本也可!)
#!/bin/sh
dir=$(dirname "$0")
java -cp "$dir/h2-x.x.xxx.jar:$H2DRIVERS:$CLASSPATH" 	org.h2.tools.Server \
# TCP 连接端口
-tcp -tcpAllowOthers -tcpPort 9092 \
# WEB Console 访问端口(默认 8082)
-web -webAllowOthers -webPort 9091 \
"$@"

[注] : 修改完文件后需要赋予执行权限   chmod 744 h2.sh
4. 编写 Dockerfile(文件位置在/h2目录下, 与/bin同级)
# H2 Database Dockerfile
# 选定的基础镜像(这里选择了自制的Alpine基础镜像)
FROM alpine-3.8.0:1.0
# 存放 h2 文件的目录(只需要/bin目录即可)
VOLUME /home/h2/bin
# -tcp 9092 -web 9091
EXPOSE 9092 9091
# 启动数据库
ENTRYPOINT /home/h2/bin/h2.sh
5. 构建 alpine-3.8.0-h2:1.0 镜像(在/h2目录下执行)
docker build --force-rm --rm --no-cache -t alpine-3.8.0-h2:1.0 .
6. 使用启动命令启动容器
docker run --name h2-database \
-d \
-p 9091:9091 \
-p 9092:9092 \
-v /home/develop/jdk1.8.0_181:/opt/java/default-jdk \
-v /home/h2-2018-03-18/h2/bin:/home/h2/bin \
alpine-3.8.0-h2:1.0

[注]:
- 容器的两个端口请根据实际情况自行映射
- 镜像内部未安装JDK,此处使用外部映射
- 为数据文件安全起见,映射数据存放目录至宿主机,方便备份、留存.
7. 启动成功

8. 访问 Web Console

9. 以 Server 模式, 在指定目录(/home/h2/bin)下创建数据库文件(容器中)

10. 查看指定的数据文件"h2database"已经在指定文件夹生成(宿主机)

- [注]
  • JDBC URL"中指定了"/home/h2/bin"作为数据文件的存储路径(在容器内部).
  • docker run 命令中指定了宿主机和容器内目录的挂载,数据文件在宿主机相应目录下也可以查看到.

转载于:https://my.oschina.net/u/3764794/blog/2989040

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值