使用Dockerfile制作jdk鏡像的詳細(xì)教程
一、Dockerfile的組成
Dockerfile由一系列指令和參數(shù)組成,每條指令都會(huì)創(chuàng)建一個(gè)新的鏡像層。這些指令告訴Docker如何構(gòu)建鏡像,包括安裝必要的軟件包、復(fù)制文件、設(shè)置環(huán)境變量等。
二:常用Dockerfile指令
1.FROM:指定基礎(chǔ)鏡像。這是構(gòu)建新鏡像的起點(diǎn),可以是任何已經(jīng)存在的鏡像。
2.MAINTAINER :維護(hù)者信息
3.WORKDIR:工作目錄
4.RUN:在鏡像構(gòu)建過程中執(zhí)行命令。這些命令通常用于安裝軟件包、編譯代碼等。
5.ADD:將文件、目錄或遠(yuǎn)程URL內(nèi)容添加到鏡像中。與COPY相比,ADD可以自動(dòng)解壓壓縮文件。
6.CMD:提供容器啟動(dòng)時(shí)的默認(rèn)命令。Dockerfile中只能有一個(gè)CMD指令,如果指定了多個(gè),只有最后一個(gè)會(huì)生效。
7.ENV:設(shè)置環(huán)境變量。
8.EXPOSE:聲明容器運(yùn)行時(shí)監(jiān)聽的端口。
10.ENTRYPOINT:配置容器啟動(dòng)時(shí)運(yùn)行的命令,讓容器以應(yīng)用程序的方式運(yùn)行。
11.VOLUME:創(chuàng)建一個(gè)可以從本地主機(jī)或其他容器掛載的掛載點(diǎn),一般用來存放數(shù)據(jù)庫和需要保持的數(shù)據(jù)等。
12.USER:指定運(yùn)行容器時(shí)的用戶名或UID。
三、編寫Dockerfile
Dockerfile是Docker鏡像的構(gòu)建腳本,它包含了構(gòu)建鏡像所需的所有指令。以下構(gòu)建一個(gè)jdk11鏡像,目錄下包含Dockerfile文件以及jdk壓縮包
# 指定基礎(chǔ)鏡像(如果本地沒有,會(huì)去鏡像倉庫拉?。? FROM hub.atomgit.com/library/centos:7 # 維護(hù)者信息 MAINTAINER qzh # 設(shè)置工作目錄 WORKDIR /usr/local/jdk # 拷貝JDK壓縮包到鏡像中 COPY jdk-11.0.24_linux-x64_bin.tar.gz /usr/local/jdk/ # 配置時(shí)區(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目錄的實(shí)際名稱
四、構(gòu)建Docker鏡像
在包含Dockerfile的目錄中打開終端或命令提示符,使用docker build
命令構(gòu)建新的Docker鏡像:
docker build -t centos-jdk11 .
其中,centos-jdk11
是鏡像的名稱;.
表示Dockerfile在當(dāng)前目錄。
五、驗(yàn)證Docker鏡像
- 構(gòu)建完成后,可以使用
docker images
命令查看本地鏡像列表,確認(rèn)新鏡像已經(jīng)創(chuàng)建
docker images
- 啟動(dòng)一個(gè)新的容器來驗(yàn)證JDK 11是否已正確安裝:
#構(gòu)建容器并進(jìn)入容器 docker run -it centos-jdk11 /bin/bash
- 在容器內(nèi)部,使用
java -version
命令來檢查JDK版本:
java -version
如果一切正常,你應(yīng)該會(huì)看到JDK 11的版本信息。通過以上步驟,你就可以成功制作一個(gè)包含JDK 11的Docker鏡像了。
六:構(gòu)建jar
可以看之前一篇:Docker一鍵部署SpringBoot項(xiàng)目的多種方式_docker_腳本之家
#基礎(chǔ)鏡像 FROM anapsix/alpine-java:8_server-jre_unlimited # 配置時(shí)區(qū) RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #配置環(huán)境變量 ENV SERVER_PORT=8001 ENV MYPATH /usr/local # 設(shè)置工作目錄【$MYPATH】使用環(huán)境配置 WORKDIR $MYPATH #將jar添加到鏡像中 ADD /target/docker-demo-encrypted.jar ./app.jar #配置容器啟動(dòng)時(shí)運(yùn)行的命令,運(yùn)行java -jar ENTRYPOINT ["java", \ "-Djava.security.egd=file:/dev/./urandom", \ "-Dserver.port=${SERVER_PORT}", \ "-jar", "app.jar"]
到此這篇關(guān)于使用Dockerfile制作jdk鏡像的詳細(xì)教程的文章就介紹到這了,更多相關(guān)Dockerfile制作jdk鏡像內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker 部署Go的兩種基礎(chǔ)鏡像的實(shí)現(xiàn)
這篇文章主要介紹了Docker 部署Go的兩種基礎(chǔ)鏡像的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04在Docker構(gòu)建的容器中實(shí)現(xiàn)安裝ping工具
這篇文章主要介紹了在Docker構(gòu)建的容器中實(shí)現(xiàn)安裝ping工具,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11Linux下docker 容器退出bash的兩種實(shí)現(xiàn)方法
這篇文章主要介紹了Linux下docker 容器退出bash的兩種實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11docker安裝RabbitMq添加用戶實(shí)現(xiàn)方式
這篇文章主要介紹了docker安裝RabbitMq添加用戶實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07Docker安裝mysql教程以及解決mysqld: Can‘t read dir&nbs
本文詳細(xì)介紹了如何通過Docker來安裝和配置MySQL數(shù)據(jù)庫,包括拉取MySQL鏡像、啟動(dòng)MySQL容器、配置MySQL、解決常見錯(cuò)誤等步驟,提供了詳盡的命令和參數(shù)說明,幫助用戶順利完成MySQL的安裝和配置,文中還提到了如何處理MySQL容器啟動(dòng)時(shí)遇到的“無法讀取目錄”2024-10-10docker部署管理工具portainer-ce的實(shí)現(xiàn)
Portainer是一個(gè)可視化的容器鏡像的圖形管理工具,利用Portainer可以輕松構(gòu)建,管理和維護(hù)Docker環(huán)境,本文主要介紹了docker部署管理工具portainer-ce的實(shí)現(xiàn),感興趣的可以了解一下2023-08-08快速修改docker容器的啟動(dòng)參數(shù)等信息
這篇文章主要介紹了快速修改docker容器的啟動(dòng)參數(shù)等信息,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03教你使用docker安裝elasticsearch和head插件的方法
這篇文章主要介紹了docker安裝elasticsearch和head插件,安裝時(shí)需要下載鏡像和修改系統(tǒng)參數(shù),本文分流程給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04一文教會(huì)你在Docker容器中實(shí)現(xiàn)Mysql主從復(fù)制
MySQL的主從復(fù)制之前也沒做過,剛百度了下發(fā)現(xiàn)并不算難,所以下面這篇文章主要給大家介紹了關(guān)于在Docker容器中實(shí)現(xiàn)Mysql主從復(fù)制的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11