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

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

基于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

基于 Alpine 基础镜像构建 H2 Database 镜像_第1张图片

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

基于 Alpine 基础镜像构建 H2 Database 镜像_第2张图片

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

基于 Alpine 基础镜像构建 H2 Database 镜像_第3张图片

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

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

你可能感兴趣的:(基于 Alpine 基础镜像构建 H2 Database 镜像)