欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Dockerfile制作jdk鏡像的詳細(xì)教程

 更新時(shí)間:2024年12月04日 09:50:57   作者:碼農(nóng)小丘  
在Docker的世界里,Dockerfile是一個(gè)至關(guān)重要的文本文件,它定義了如何構(gòu)建Docker鏡像,通過編寫Dockerfile,開發(fā)者可以確保他們的應(yīng)用程序及其依賴項(xiàng)被正確地打包、優(yōu)化和部署,本文將深入探討Dockerfile的組成、常用指令以及編寫高效Dockerfile的最佳實(shí)踐

一、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)文章

  • 30分鐘帶你了解Docker(推薦)

    30分鐘帶你了解Docker(推薦)

    這篇文章是針對(duì)Java開發(fā)人員的,但Docker的使用場(chǎng)景絕不僅限于此。最后,靈敏意味著可能有一些開發(fā)方式需要調(diào)整,到底如何利用Docker應(yīng)該是當(dāng)你了解它之后需要認(rèn)真思考的問題
    2018-08-08
  • Docker 部署Go的兩種基礎(chǔ)鏡像的實(shí)現(xià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工具

    這篇文章主要介紹了在Docker構(gòu)建的容器中實(shí)現(xiàn)安裝ping工具,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Linux下docker 容器退出bash的兩種實(shí)現(xiàn)方法

    Linux下docker 容器退出bash的兩種實(shí)現(xiàn)方法

    這篇文章主要介紹了Linux下docker 容器退出bash的兩種實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • docker安裝RabbitMq添加用戶實(shí)現(xiàn)方式

    docker安裝RabbitMq添加用戶實(shí)現(xiàn)方式

    這篇文章主要介紹了docker安裝RabbitMq添加用戶實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Docker安裝mysql教程以及解決mysqld: Can‘t read dir of ‘/etc/mysql/conf.d/‘問題

    Docker安裝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-10
  • docker部署管理工具portainer-ce的實(shí)現(xiàn)

    docker部署管理工具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ù)等信息

    這篇文章主要介紹了快速修改docker容器的啟動(dòng)參數(shù)等信息,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • 教你使用docker安裝elasticsearch和head插件的方法

    教你使用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ù)制

    一文教會(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

最新評(píng)論