使用Dockerfile制作jdk鏡像的詳細教程
一、Dockerfile的組成
Dockerfile由一系列指令和參數組成,每條指令都會創(chuàng)建一個新的鏡像層。這些指令告訴Docker如何構建鏡像,包括安裝必要的軟件包、復制文件、設置環(huán)境變量等。
二:常用Dockerfile指令
1.FROM:指定基礎鏡像。這是構建新鏡像的起點,可以是任何已經存在的鏡像。
2.MAINTAINER :維護者信息
3.WORKDIR:工作目錄
4.RUN:在鏡像構建過程中執(zhí)行命令。這些命令通常用于安裝軟件包、編譯代碼等。
5.ADD:將文件、目錄或遠程URL內容添加到鏡像中。與COPY相比,ADD可以自動解壓壓縮文件。
6.CMD:提供容器啟動時的默認命令。Dockerfile中只能有一個CMD指令,如果指定了多個,只有最后一個會生效。
7.ENV:設置環(huán)境變量。
8.EXPOSE:聲明容器運行時監(jiān)聽的端口。
10.ENTRYPOINT:配置容器啟動時運行的命令,讓容器以應用程序的方式運行。
11.VOLUME:創(chuàng)建一個可以從本地主機或其他容器掛載的掛載點,一般用來存放數據庫和需要保持的數據等。
12.USER:指定運行容器時的用戶名或UID。
三、編寫Dockerfile
Dockerfile是Docker鏡像的構建腳本,它包含了構建鏡像所需的所有指令。以下構建一個jdk11鏡像,目錄下包含Dockerfile文件以及jdk壓縮包
# 指定基礎鏡像(如果本地沒有,會去鏡像倉庫拉?。? FROM hub.atomgit.com/library/centos:7 # 維護者信息 MAINTAINER qzh # 設置工作目錄 WORKDIR /usr/local/jdk # 拷貝JDK壓縮包到鏡像中 COPY jdk-11.0.24_linux-x64_bin.tar.gz /usr/local/jdk/ # 配置時區(qū) RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime RUN echo 'Asia/Shanghai' >/etc/timezone # 解壓JDK壓縮包 RUN tar -zxvf jdk-11.0.24_linux-x64_bin.tar.gz && rm -rf jdk-11.0.24_linux-x64_bin.tar.gz # 配置環(huán)境變量 ENV JAVA_HOME=/usr/local/jdk/jdk-11.0.24 ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV PATH=$JAVA_HOME/bin:$PATH
注意:
- 在
ENV中JAVA_HOME
行中,需要將jdk-11.x.x
替換為解壓后的JDK目錄的實際名稱
四、構建Docker鏡像
在包含Dockerfile的目錄中打開終端或命令提示符,使用docker build
命令構建新的Docker鏡像:
docker build -t centos-jdk11 .
其中,centos-jdk11
是鏡像的名稱;.
表示Dockerfile在當前目錄。
五、驗證Docker鏡像
- 構建完成后,可以使用
docker images
命令查看本地鏡像列表,確認新鏡像已經創(chuàng)建
docker images
- 啟動一個新的容器來驗證JDK 11是否已正確安裝:
#構建容器并進入容器 docker run -it centos-jdk11 /bin/bash
- 在容器內部,使用
java -version
命令來檢查JDK版本:
java -version
如果一切正常,你應該會看到JDK 11的版本信息。通過以上步驟,你就可以成功制作一個包含JDK 11的Docker鏡像了。
六:構建jar
可以看之前一篇:Docker一鍵部署SpringBoot項目的多種方式_docker_腳本之家
#基礎鏡像 FROM anapsix/alpine-java:8_server-jre_unlimited # 配置時區(qū) RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #配置環(huán)境變量 ENV SERVER_PORT=8001 ENV MYPATH /usr/local # 設置工作目錄【$MYPATH】使用環(huán)境配置 WORKDIR $MYPATH #將jar添加到鏡像中 ADD /target/docker-demo-encrypted.jar ./app.jar #配置容器啟動時運行的命令,運行java -jar ENTRYPOINT ["java", \ "-Djava.security.egd=file:/dev/./urandom", \ "-Dserver.port=${SERVER_PORT}", \ "-jar", "app.jar"]
到此這篇關于使用Dockerfile制作jdk鏡像的詳細教程的文章就介紹到這了,更多相關Dockerfile制作jdk鏡像內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Docker安裝mysql教程以及解決mysqld: Can‘t read dir&nbs
本文詳細介紹了如何通過Docker來安裝和配置MySQL數據庫,包括拉取MySQL鏡像、啟動MySQL容器、配置MySQL、解決常見錯誤等步驟,提供了詳盡的命令和參數說明,幫助用戶順利完成MySQL的安裝和配置,文中還提到了如何處理MySQL容器啟動時遇到的“無法讀取目錄”2024-10-10教你使用docker安裝elasticsearch和head插件的方法
這篇文章主要介紹了docker安裝elasticsearch和head插件,安裝時需要下載鏡像和修改系統(tǒng)參數,本文分流程給大家講解的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-04-04