Linux系統(tǒng)Docker拉取JDK21鏡像超細(xì)詳解
前言
Docker 是一個(gè)輕量級的虛擬化工具,允許你在 Linux、Windows 等操作系統(tǒng)上運(yùn)行各種容器化應(yīng)用程序。本文將詳細(xì)介紹如何在 Linux 系統(tǒng)上使用 Docker 拉取 JDK 21 鏡像,并基于該鏡像進(jìn)行開發(fā)和測試環(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 啟動并驗(yàn)證 Docker
安裝完成后,啟動 Docker 服務(wù)并驗(yàn)證是否安裝成功:
# 啟動 Docker sudo systemctl start docker # 設(shè)置開機(jī)啟動 sudo systemctl enable docker # 驗(yàn)證 Docker 安裝 docker --version
執(zhí)行 docker --version
,應(yīng)該會顯示 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
該命令會列出所有與 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è)容器,來測試我們的 JDK 環(huán)境。
3.1 創(chuàng)建并啟動容器
使用以下命令基于 openjdk:21
鏡像啟動一個(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> | 啟動一個(gè)已停止的容器 |
docker stop <容器ID> | 停止一個(gè)運(yùn)行中的容器 |
docker rm <容器ID> | 刪除一個(gè)容器 |
docker rmi <鏡像ID> | 刪除一個(gè)鏡像 |
五、基于 JDK 21 容器運(yùn)行簡單 Java 應(yīng)用
接下來,我們在運(yùn)行的 JDK 21 容器中編寫一個(gè)簡單的 Java 程序,驗(yàn)證容器內(nèi)的開發(fā)環(huán)境。
5.1 編寫簡單的 Java 程序
在容器內(nèi)創(chuàng)建一個(gè) Java 文件,并編寫簡單的代碼。我們將編寫一個(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è)鏡像啟動。
結(jié)論
通過本篇教程,你已經(jīng)學(xué)習(xí)了如何在 Linux 系統(tǒng)上使用 Docker 拉取并運(yùn)行 JDK 21 鏡像。我們還介紹了如何基于該鏡像創(chuàng)建和運(yùn)行容器,并編寫簡單的 Java 程序驗(yàn)證環(huán)境的正確性。Docker 提供了輕量級的虛擬化支持,使得開發(fā)者能夠快速部署和管理多種開發(fā)環(huán)境,這對構(gòu)建現(xiàn)代化應(yīng)用程序的開發(fā)流程非常有幫助。
到此這篇關(guān)于Linux系統(tǒng)Docker拉取JDK21鏡像的文章就介紹到這了,更多相關(guān)Docker拉取JDK21鏡像內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java深入講解AWT實(shí)現(xiàn)事件處理流程
AWT的事件處理是一種委派式事件處理方式:普通組件(事件源)將整個(gè)事件處理委托給特定的對象(事件監(jiān)聽器);當(dāng)該事件源發(fā)生指定的事件時(shí),就通知所委托的事件監(jiān)聽器,由事件監(jiān)聽器來處理這個(gè)事件2022-04-04