基於 Alpine 基礎鏡像構建 H2 Database 鏡像

基於Alpine基礎鏡像構建H2 Database鏡像

0. 說明

x.x.xxx 爲h2版本,例: h2-1.4.197.jar

1. H2數據庫、Docker鏡像文件

Platform-Independent Ziphtml

alpine-3.8.0-1.0.tarjava

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 命令中指定了宿主機和容器內目錄的掛載,數據文件在宿主機相應目錄下也能夠查看到.
相關文章
相關標籤/搜索