1、資源準備
下載java11的jdk
下載地址:https://www.oracle.com/java/technologies/javase-jdk11-downloads.html
選擇linux-64的版本(jdk-11.0.7_linux-x64_bin.tar.gz)
2、創建Dockerfile文件
文件內容如下:
#1.指定基礎鏡像,並且必須是第一條指令
FROM centos:7
#2.指明該鏡像的作者和其電子郵件
MAINTAINER taolong.hong "[email protected]"
#3.在構建鏡像時,指定鏡像的工作目錄,之後的命令都是基於此工作目錄,如果不存在,則會創建目錄
WORKDIR /soft/jdk
#4.一個複製命令,把jdk安裝文件複製到鏡像中,語法:ADD <src>... <dest>,注意:jdk*.tar.gz使用的是相對路徑
ADD jdk-11.0.7_linux-x64_bin.tar.gz /soft/jdk/
#5.設置時區
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone
#6.配置環境變量
ENV JAVA_HOME=/soft/jdk/jdk-11.0.7
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$JAVA_HOME/bin:$PATH
#容器啓動時需要執行的命令
#CMD ["java","-version"]
上面都寫了註釋,也比較簡單,不多說了
3、構建鏡像(docker build)
我這裏jdk-11.0.7_linux-x64_bin.tar.gz 和Dockerfile放在同一個目錄下面的,直接用docker build指定當前路徑即可
docker build -t “倉庫路徑xxx/java:11” .
注意後面的“.”表示當前路徑,如果不是當前路徑需要用-f指定
4、推送到遠程倉庫
前面如果-t指定了倉庫的路徑,則直接使用docker push即可 ,否則用docker tag
5、測試
(1)測試centos時區:進入容器輸入date
(2)測試java環境:進入容器輸入java -version
(3)測試jdk時區:編寫一個.java文件,裏面打印LocalDateTime打印時間