天天看點

Docker建構Java程式鏡像

Docker建構Java程式鏡像

  • ​​1. 母鏡像選擇​​
  • ​​2. 基礎鏡像制作​​
  • ​​3. 業務鏡像制作​​
制作鏡像的時候分為​

​母鏡像​

​​(docker hub或私庫裡面的)

​​

​基礎鏡像​

​​ 通過封裝母鏡像做的基于此的鏡像

​​

​業務鏡像​

​ 就是jar包放進去的鏡像

1. 母鏡像選擇

為什麼用openjdk:8-jre-alpine
鏡像名 版本 所占大小
openjdk 8-jre-alpine 84.9MB
java 8-jre-alpine 108MB
java 8 643MB
Docker建構Java程式鏡像

2. 基礎鏡像制作

建立​

​Dockerfile​

​ 設定如下:
# linux,jre基礎鏡像
FROM openjdk:8-jre-alpine

# 作者資訊
MAINTAINER Jack Wei <[email protected]>

# 更新時區
RUN apk add -U tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime      
建立鏡像, 如果沒有私庫請去掉​

​私庫位址​

docker build -t 私庫位址/library/base:1.0 -f Dockerfile .      
Docker建構Java程式鏡像
如果沒有私庫請去掉​

​私庫位址​

docker push 私庫位址/library/base:1.0      
Docker建構Java程式鏡像
Docker建構Java程式鏡像
啟動驗證 如果沒有私庫請去掉​

​私庫位址​

# 啟動鏡像, --name指定名稱啟動
docker run -di --name=mybase 私庫位址/library/base:1.0
# 進入鏡像
docker exec -it mybase /bin/sh      
Docker建構Java程式鏡像
可以看到占的記憶體也很少
Docker建構Java程式鏡像

3. 業務鏡像制作

如果沒有私庫請去掉​

​私庫位址​

# 基礎鏡像
FROM 私庫位址/library/base:1.0

# 作者資訊
MAINTAINER Jack Wei <[email protected]>

# 将目前的jar拷貝到容器home下面
ADD forestweb.jar /home/forestweb.jar

ENTRYPOINT ["java","-jar","forestweb.jar","--spring.profiles.active=prod","--server.port=8082"]

# 挂載到本地
VOLUME ["/home/docker/log/forest"]

# 工作目錄, 直接進到home下面
WORKDIR /home      

目前目錄如下:

Docker建構Java程式鏡像
建立鏡像, 如果沒有私庫請去掉​

​私庫位址​

docker build -t 61.164.255.62:19066/forest/forestweb:1.0.0 -f Dockerfile .      
Docker建構Java程式鏡像
啟動驗證 如果沒有私庫請去掉​

​私庫位址​

# 啟動鏡像, -id背景互動啟動 --name指定名稱 -v挂載卷
docker run -id -p 18081:8082 -v /home/logs/forestweb:/home/logs --name=forestweb 61.164.255.62:19066/forest/forestweb:1.0.0

# 進入鏡像
docker exec -it forestweb /bin/sh