Docker-創建最小的jdk8鏡像~

問題

用centos作爲基礎鏡像和150多M的jdk壓縮來創建一個jdk鏡像,發現都要500多m,這個確實有點大了。
所以下面就是如何構建最小的jdk鏡像。

使用docker images 命令的時候可以看到我們的jdk真的很大
在這裏插入圖片描述

使用Oracle的JRE不是openjdk,並構建成Docker鏡像。具體步驟如下

一:首先官網下載jre

在這裏插入圖片描述
大約80多M,下載結束之後上傳到centos上的 /usr/local/dockerimage/smalljava8 (自定義一個目錄)


二:解壓jar包,並且刪除不必要的文件

tar -zxvf jre-8u231-linux-x64.tar.gz​

進入目錄

cd jre1.8.0_231​

刪除文本文件

rm -rf COPYRIGHT LICENSE README release THIRDPARTYLICENSEREADME-JAVAFX.txtTHIRDPARTYLICENSEREADME.txt Welcome.html

刪除其他無用文件

rm -rf lib/plugin.jar \
 lib/ext/jfxrt.jar \
 bin/javaws \
 lib/javaws.jar \
 lib/desktop \
 plugin \
 lib/deploy* \
 lib/*javafx* \
 lib/*jfx* \
 lib/amd64/libdecora_sse.so \
 lib/amd64/libprism_*.so \
 lib/amd64/libfxplugins.so \
 lib/amd64/libglass.so \
 lib/amd64/libgstreamer-lite.so \
 lib/amd64/libjavafx*.so \
 lib/amd64/libjfx*.so​

三:重新打包所有文件

tar zcvf jre8.tar.gz *

打包之後把壓縮包拷貝到 jre8 目錄下,見下圖

二:解壓jar包,並且刪除不必要的文件

四:創建Dockerfile
現在的目錄結構如下:

在這裏插入圖片描述

進入jre8目錄下,創建Dockerfile文件並寫入以下內容
在這裏插入圖片描述

# using alpine-glibc instead of alpine is mainly because JDK relies on glibc
FROM docker.io/jeanblanchard/alpine-glibc
# author
MAINTAINER scc <shangchengcai@voole.com>
# A streamlined jre
ADD jre8.tar.gz /usr/local/dockerimage/smalljava8/jre8/
# set env
ENV JAVA_HOME /usr/local/dockerimage/smalljava8/jre8
ENV PATH ${PATH}:${JAVA_HOME}/bin
# run container with base path:/opt
WORKDIR /opt​

加粗樣式


五:構建鏡像

docker build -t fds/java8:1.0 .​

六:測試運行

docker run -it fds/java8:1.0​

驗證是否運行成功

 docker ps
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章