最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux系統(tǒng)Docker拉取JDK21鏡像超細(xì)詳解

 更新時(shí)間:2024年12月24日 08:50:42   作者:一只蝸牛兒  
這篇文章主要介紹了如何在Linux系統(tǒng)上使用Docker拉取JDK21鏡像,并基于該鏡像搭建開發(fā)和測(cè)試環(huán)境,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

Docker 是一個(gè)輕量級(jí)的虛擬化工具,允許你在 Linux、Windows 等操作系統(tǒng)上運(yùn)行各種容器化應(yīng)用程序。本文將詳細(xì)介紹如何在 Linux 系統(tǒng)上使用 Docker 拉取 JDK 21 鏡像,并基于該鏡像進(jìn)行開發(fā)和測(cè)試環(huán)境的搭建,確保操作過程清晰、代碼豐富。

一、Docker的安裝和配置

在 Linux 系統(tǒng)上使用 Docker 的第一步是安裝 Docker。Docker 可以在多數(shù) Linux 發(fā)行版中通過包管理器進(jìn)行安裝。

1.1 更新系統(tǒng)并安裝 Docker

使用以下命令更新系統(tǒng)并安裝 Docker:

# 更新軟件包
sudo apt update
sudo apt upgrade -y

# 安裝依賴項(xiàng)
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y

# 添加 Docker 官方 GPG 密鑰
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 添加 Docker 軟件源
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安裝 Docker
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io -y

1.2 啟動(dòng)并驗(yàn)證 Docker

安裝完成后,啟動(dòng) Docker 服務(wù)并驗(yàn)證是否安裝成功:

# 啟動(dòng) Docker
sudo systemctl start docker

# 設(shè)置開機(jī)啟動(dòng)
sudo systemctl enable docker

# 驗(yàn)證 Docker 安裝
docker --version

執(zhí)行 docker --version,應(yīng)該會(huì)顯示 Docker 的版本信息,證明安裝成功。

二、查找并拉取 JDK 21 鏡像

Docker 提供了許多預(yù)構(gòu)建的鏡像,包括各類語言的開發(fā)環(huán)境。在 Docker Hub 中,我們可以找到官方發(fā)布的 OpenJDK 鏡像。

2.1 搜索 JDK 21 鏡像

使用 docker search 命令可以查找 Docker Hub 上的 JDK 相關(guān)鏡像:

docker search openjdk

該命令會(huì)列出所有與 openjdk 相關(guān)的鏡像,接下來我們可以選擇最新的 JDK 21 鏡像。

2.2 拉取 JDK 21 鏡像

執(zhí)行以下命令從 Docker Hub 拉取 JDK 21 鏡像:

docker pull openjdk:21

等待下載完成后,你可以使用 docker images 命令查看已拉取的鏡像:

docker images

2.3 檢查鏡像

使用 docker images 列表顯示拉取的 JDK 21 鏡像:

REPOSITORY         TAG        IMAGE ID       CREATED        SIZE
openjdk            21         abcdef123456   2 days ago     620MB

可以看到 openjdk:21 鏡像已經(jīng)成功拉取,接下來我們將基于該鏡像運(yùn)行容器。

三、運(yùn)行 JDK 21 容器

拉取鏡像后,下一步是基于該鏡像運(yùn)行一個(gè)容器,來測(cè)試我們的 JDK 環(huán)境。

3.1 創(chuàng)建并啟動(dòng)容器

使用以下命令基于 openjdk:21 鏡像啟動(dòng)一個(gè)容器:

docker run -it --name jdk21-container openjdk:21 /bin/bash

此命令的解釋如下:

  • -it:交互式終端模式。
  • --name jdk21-container:為容器指定一個(gè)名字。
  • openjdk:21:使用我們剛剛拉取的 JDK 21 鏡像。
  • /bin/bash:容器內(nèi)使用 Bash 終端。

執(zhí)行完后,你將進(jìn)入到容器內(nèi)的終端,在容器內(nèi)運(yùn)行 JDK 相關(guān)命令。

3.2 驗(yàn)證 JDK 安裝

在容器內(nèi),執(zhí)行以下命令來驗(yàn)證 JDK 是否已正確安裝:

java -version

你將看到如下輸出,表明 JDK 21 已成功運(yùn)行:

openjdk version "21" 2024-03-20
OpenJDK Runtime Environment (build 21+35)
OpenJDK 64-Bit Server VM (build 21+35, mixed mode)

3.3 退出容器

輸入 exit 命令退出容器:

exit

容器將停止運(yùn)行,但仍然存在。我們可以使用 docker ps -a 查看停止的容器。

四、Docker 常見命令匯總

在使用 Docker 時(shí),有一些常見的命令非常重要,下面是一些常用的 Docker 命令及其解釋:

命令說明
docker pull <鏡像名>從 Docker Hub 拉取鏡像
docker images查看本地鏡像列表
docker run -it <鏡像名> /bin/bash運(yùn)行一個(gè)交互式容器
docker ps查看正在運(yùn)行的容器
docker ps -a查看所有容器(包括停止的容器)
docker start <容器ID>啟動(dòng)一個(gè)已停止的容器
docker stop <容器ID>停止一個(gè)運(yùn)行中的容器
docker rm <容器ID>刪除一個(gè)容器
docker rmi <鏡像ID>刪除一個(gè)鏡像

五、基于 JDK 21 容器運(yùn)行簡(jiǎn)單 Java 應(yīng)用

接下來,我們?cè)谶\(yùn)行的 JDK 21 容器中編寫一個(gè)簡(jiǎn)單的 Java 程序,驗(yàn)證容器內(nèi)的開發(fā)環(huán)境。

5.1 編寫簡(jiǎn)單的 Java 程序

在容器內(nèi)創(chuàng)建一個(gè) Java 文件,并編寫簡(jiǎn)單的代碼。我們將編寫一個(gè) HelloWorld.java 程序:

# 在容器內(nèi)創(chuàng)建 HelloWorld.java 文件
echo 'public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, Docker JDK 21!");
    }
}' > HelloWorld.java

5.2 編譯并運(yùn)行 Java 程序

使用 javac 命令編譯 Java 文件,并使用 java 命令運(yùn)行編譯后的類文件:

# 編譯 Java 文件
javac HelloWorld.java

# 運(yùn)行 Java 程序
java HelloWorld

運(yùn)行結(jié)果:

Hello, Docker JDK 21!

5.3 退出并保存容器

如果想讓容器退出后繼續(xù)保持?jǐn)?shù)據(jù),可以使用 docker commit 來保存容器的當(dāng)前狀態(tài)為新的鏡像:

docker commit jdk21-container myjdk21-image

這樣可以創(chuàng)建一個(gè)新的自定義鏡像 myjdk21-image,可以下次直接基于這個(gè)鏡像啟動(dòng)。

結(jié)論

通過本篇教程,你已經(jīng)學(xué)習(xí)了如何在 Linux 系統(tǒng)上使用 Docker 拉取并運(yùn)行 JDK 21 鏡像。我們還介紹了如何基于該鏡像創(chuàng)建和運(yùn)行容器,并編寫簡(jiǎn)單的 Java 程序驗(yàn)證環(huán)境的正確性。Docker 提供了輕量級(jí)的虛擬化支持,使得開發(fā)者能夠快速部署和管理多種開發(fā)環(huán)境,這對(duì)構(gòu)建現(xiàn)代化應(yīng)用程序的開發(fā)流程非常有幫助。

到此這篇關(guān)于Linux系統(tǒng)Docker拉取JDK21鏡像的文章就介紹到這了,更多相關(guān)Docker拉取JDK21鏡像內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解如何繼承Mybatis中Mapper.xml文件

    詳解如何繼承Mybatis中Mapper.xml文件

    這篇文章主要為大家介紹了詳解如何繼承Mybatis中Mapper.xml文件,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • java多線程之停止線程的方法實(shí)例代碼詳解

    java多線程之停止線程的方法實(shí)例代碼詳解

    這篇文章主要介紹了java多線程之停止線程的方法實(shí)例代碼詳解,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • Java ClassCastException報(bào)錯(cuò):java.util.HashSet cannot be cast to java.util.List的解決方法

    Java ClassCastException報(bào)錯(cuò):java.util.HashSet cannot

    這篇文章主要來帶大家分析一下Java開發(fā)中常見的ClassCastException異常,當(dāng)試圖將HashSet強(qiáng)制轉(zhuǎn)換為L(zhǎng)ist時(shí)會(huì)拋出java.util.HashSet cannot be cast to java.util.List,下面我們來看看具體怎么解決吧
    2026-02-02
  • Dubbo配置http協(xié)議全過程

    Dubbo配置http協(xié)議全過程

    文章介紹了在服務(wù)提供者和服務(wù)消費(fèi)者中,分別通過添加依賴包和配置文件,實(shí)現(xiàn)基于HTTP協(xié)議的服務(wù)接口注冊(cè)及調(diào)用,無需修改消費(fèi)者啟動(dòng)類,服務(wù)調(diào)用方式與Dubbo協(xié)議類似
    2025-10-10
  • Java注解處理器實(shí)戰(zhàn)(附詳細(xì)示例代碼)

    Java注解處理器實(shí)戰(zhàn)(附詳細(xì)示例代碼)

    這篇文章主要介紹了Java注解處理器實(shí)戰(zhàn)的相關(guān)資料,通過編譯時(shí)APT生成代碼、運(yùn)行時(shí)反射實(shí)現(xiàn)視圖注入,同時(shí)指導(dǎo)如何開發(fā)自定義注解處理器,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-10-10
  • Java程序開發(fā)環(huán)境配置圖文教程

    Java程序開發(fā)環(huán)境配置圖文教程

    這篇文章主要為大家詳細(xì)介紹了Java程序開發(fā)環(huán)境配置圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • mybatis中的延遲加載和一二級(jí)緩存深入解析

    mybatis中的延遲加載和一二級(jí)緩存深入解析

    延遲加載是MyBatis對(duì)關(guān)聯(lián)查詢的優(yōu)化機(jī)制,查詢主對(duì)象時(shí),不立即查詢其關(guān)聯(lián)對(duì)象(如用戶和賬戶的一對(duì)多關(guān)系),僅在實(shí)際使用關(guān)聯(lián)對(duì)象(調(diào)用 getter 方法)時(shí),才觸發(fā)關(guān)聯(lián)查詢的 SQL 執(zhí)行,這篇文章給大家介紹mybatis中的延遲加載和一二級(jí)緩存,感興趣的朋友一起看看吧
    2025-12-12
  • JAVA多種方法實(shí)現(xiàn)字符串反轉(zhuǎn)

    JAVA多種方法實(shí)現(xiàn)字符串反轉(zhuǎn)

    大家好,本篇文章主要講的是JAVA多種方法實(shí)現(xiàn)字符串反轉(zhuǎn),感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • 詳解如何獲取PreparedStatement參數(shù)示例詳解

    詳解如何獲取PreparedStatement參數(shù)示例詳解

    這篇文章主要為大家介紹了詳解如何獲取PreparedStatement參數(shù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Mockito 結(jié)合 Springboot 進(jìn)行應(yīng)用測(cè)試的方法詳解

    Mockito 結(jié)合 Springboot 進(jìn)行應(yīng)用測(cè)試的方法詳解

    這篇文章主要介紹了Mockito 結(jié)合 Springboot 進(jìn)行應(yīng)用測(cè)試的方法詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11

最新評(píng)論

桦南县| 济阳县| 友谊县| 宝坻区| 油尖旺区| 绍兴市| 宁晋县| 宜川县| 璧山县| 蒲江县| 泰安市| 广宗县| 胶南市| 台北县| 海安县| 禹州市| 新津县| 福贡县| 石楼县| 滁州市| 鹿邑县| 宜阳县| 嵊泗县| 西华县| 句容市| 苍南县| 衡东县| 柘城县| 鹤壁市| 新巴尔虎左旗| 永定县| 平江县| 大港区| 灵台县| 石嘴山市| 阳原县| 乐至县| 民县| 华宁县| 衡南县| 镇巴县|