百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

使用Docker制作OpenJDK镜像

gudong366 2025-05-18 13:34 28 浏览

使用VirtualBox安装CentOS 7和Docker

使用Docker部署MySQL数据库

使用Docker制作OpenJDK镜像(我们在这)

使用Docker部署Java应用


准备OpenJDK

首先,我们需要下载OpenJDK的Release包,下载地址:
https://download.java.net/java/ga/jdk11/openjdk-11_linux-x64_bin.tar.gz

说明:在虚拟机中下载可能会比较慢,这里可以通过迅雷下载压缩包后,通过共享目录挂载给虚拟机。

然后,我们创建一个目录来制作镜像,并将压缩包拷贝到这个目录中:

mkdir -p ~/openjdk-image
mv openjdk-11_linux-x64_bin.tar.gz ~/openjdk-image/

注意:以上命令需要在虚拟机中存放OpenJDK压缩包的目录中执行
另外,将压缩包拷贝到虚拟机目录中是必要的,否则在后续解压缩过程中可能发生权限问题

最后,我们进入到这个目录,并将压缩包解开:

cd ~/openjdk-image/
tar -zxvf openjdk-11_linux-x64_bin.tar.gz

此时,我们会得到一个名为“jdk-11”的目录,这就是解压后的Release包。

制作OpenJDK镜像

在制作OpenJDK的镜像时,我们需要使用到CentOS 7的镜像。

首先,我们将CentOS 7的镜像下载到本地:

docker image pull centos:7

拉取镜像可能需要一段时间,待下载完成后,其输出结果如下:

7: Pulling from library/centos
2d473b07cdd5: Pull complete
Digest: sha256:9d4bcbbb213dfd745b58be38b13b996ebb5ac315fe75711bd618426a630e0987
Status: Downloaded newer image for centos:7
docker.io/library/centos:7

此时,我们可以在本地查看到该镜像:

docker image ls

其输出结果如下:

REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
mysql        8.0.28    5b4c624c7fe1   5 days ago     519MB
centos       7         eeb6ee3f44bd   4 months ago   204MB

现在,我们来编写一个Dockerfile,用以制作OpenJDK的镜像。

我们需要在当前目录创建一个名为“Dockerfile”的文件:

vi Dockerfile

然后,将以下内容输入到文件中,保存并退出:

FROM centos:7
COPY ./jdk-11 /opt/jdk11
ENV JAVA_HOME /opt/jdk11
ENV PATH $PATH:$JAVA_HOME/bin

这里需要简单说明一下,Dockerfile的内容可看做是若干行脚本,制作镜像的过程即是逐行执行这些脚本。这里对该Dockerfile的内容做一个简要的说明:

  • 步骤一:FROM centos:7。表示我们需要制作的镜像,需要以标签为“centos:7”的镜像作为父镜像
  • 步骤二:COPY ./jdk-11 /opt/jdk11。将当前目录下的“jdk-11”拷贝到容器中的“/opt/jdk11”位置
  • 步骤三:ENV JAVA_HOME /opt/jdk11。在容器中设置环境变量,环境变量的名称为“JAVA_HOME”,值为“/opt/jdk11”
  • 步骤四:ENV PATH $PATH:$JAVA_HOME/bin。在容器中设置环境变量,环境变量的名称为“PATH”,值为“$PATH:$JAVA_HOME/bin”

现在我们可以通过执行以下命令来制作镜像了:

docker image build -t openjdk:11 .

需要注意的是,这行命令的最后有一个点,表示在当前目录中寻找Dockerfile文件以制作命令。其中“-t”用来指定镜像的标签,这个镜像的标签即为“openjdk:11”。
镜像制作完成后,其输出结果如下:

Step 1/4 : FROM centos:7
 ---> eeb6ee3f44bd
Step 2/4 : COPY ./jdk-11 /opt/jdk11
 ---> 97ebcbf3ddab
Step 3/4 : ENV JAVA_HOME /opt/jdk11
 ---> Running in 86451e9824ae
Removing intermediate container 86451e9824ae
 ---> 2bd0a7b4a616
Step 4/4 : ENV PATH $PATH:$JAVA_HOME/bin
 ---> Running in 9ef91e213520
Removing intermediate container 9ef91e213520
 ---> de5d1368d569
Successfully built de5d1368d569
Successfully tagged openjdk:11

现在,我们可以在本地看到刚刚制作的“openjdk:11”镜像了:

docker image ls

其输出结果为:

REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
openjdk      11        de5d1368d569   18 minutes ago   514MB
mysql        8.0.28    5b4c624c7fe1   5 days ago       519MB
centos       7         eeb6ee3f44bd   4 months ago     204MB

验证镜像

现在,我们可以使用这个镜像运行一个容器,来查看我们的成果。

首先,我们使用这个镜像以交互方式运行一个容器:

docker run --name openjdk -it openjdk:11

此时,我们即已创建并运行了容器,同时已经连接到了容器的终端。我们可查看“JAVA_HOME”环境变量的内容:

echo $JAVA_HOME

其输出结果为:

/opt/jdk11

再查看“PATH”环境变量:

echo $PATH

其输出结果为:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/jdk11/bin

然后我们可以查看java以及javac的版本信息。

查看java版本:

java -version

输出结果为:

openjdk version "11" 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)

查看javac版本:

javac -version

输出结果为:

javac 11

此时,我们的OpenJDK镜像已经制作完成,执行以下命令退出容器:

exit

现在我们停止并删除刚才运行的容器:

docker container stop openjdk
docker container rm openjdk

到这里,我们已经成功地制作了OpenJDK的镜像,并验证了其可用性。后续我们继续将我们自己的Java应用部署到容器中。

相关推荐

U盘文件被删怎么简单恢复(u盘里的文件被误删了怎么找回)

现在这个社会不是靠关系靠路子,主要还是靠实力。刘强在机关工作,人长得帅气,工作能力又强。唯独一样不好,脾气太大,动不动就发火,因为小事常和同事发生口角。一次他火大的差点把办公桌给掀翻了,领导见他野蛮的...

不小心删除了一些文件?9 个最佳免费硬盘恢复软件

恢复您曾经无意或意外删除的所有文件和数据。您是否曾经错误地删除了一个对您的工作至关重要并导致您丢失所有进度的文件?我们为您提供了一些最好的免费硬盘恢复软件,以帮助您恢复意外删除的文件,以解决您的文件删...

Studio 中文版:数据救援神器,误删 / 分区损坏 / RAID 恢复一键找回

Studio中文版:数据救援神器,误删/分区损坏/RAID恢复一键找回当文件意外删除、分区损坏,或RAID阵列崩溃时,一款可靠的数据恢复工具往往能挽回关键损失。R-Studio中文版...

你值得拥有的11款Linux数据恢复工具

如果你使用的是Linux操作系统,那么你一定想知道一旦硬盘崩溃的话又该如何保存和恢复数据。其实,现在有很多Linux数据恢复工具可以让我们摆脱数据安全的困扰。小编已经为各位准备好了一些最好的Linux...

误删文件内容怎么恢复(误删文件内容怎么恢复回来)

  在日常使用电脑的过程中,误删文件的情况时有发生。无论是由于操作失误还是病毒攻击,误删文件都会给我们带来不小的困扰。幸运的是,随着技术的发展,误删文件恢复已不再是难题。本文将介绍几款国内外知名的误删...

u盘如何恢复删除的文件?推荐5款u盘数据恢复软件!

在日常生活与工作中,U盘作为便捷的数据存储载体,频繁用于传输和保存各类重要文件。然而,误删文件的情况却时有发生,无论是珍贵的照片、重要的工作文档,还是精心制作的视频,一旦删除,都可能带来不小的麻烦。...

怎么恢复删除的数据?5种有效的数据恢复方法汇总!

在数字化办公与生活的时代,电脑里的每一份数据都承载着重要信息。然而,一个误操作就可能导致数据被删除,无论是尚未保存的重要文档,还是珍藏多年的照片,都可能瞬间“消失”。但其实,数据删除并不意味着永久丢...

u盘删除文件怎么找回?5个数据恢复工具汇总,助你巧妙恢复数据!

在日常使用U盘的过程中,误删文件的情况时有发生,重要的工作文档、珍贵的照片视频一旦消失,难免让人焦急万分。别担心,只要选对数据恢复工具,被删除的数据仍有找回的可能。下面就为你汇总5款实用的数据...

Linux下恢复误删文件:思路+实践(linux删除如何恢复)

周五篮球群里有人问误删文件了怎么恢复,得知是ext4文件系统之后我推荐了ext4magic这个工具,然后又有人提到了xfs的话怎么办,正好前几天看到DaveChinner在邮件列表里提到了这个问题,...

苹果放大招!不用虚拟机了,Mac直接跑Linux容器,开发者效率翻倍

苹果这次真给开发者送福利了!今天凌晨(6月10日),苹果在官宣的Containerization框架直接炸了技术圈——Mac现在能原生运行Linux容器镜像了!这可不是虚拟机那种“套娃”方案,而是基...

7 款老牌经典软件,值得收藏(经典老歌软件)

Calibrehttps://calibre-ebook.com/Calibre是一个电脑电子书管理软件。肯定有人说了,电子书还要管理?那当然了。它的功能更强大的让你想象不到,首先它可以导入PDF,...

神仙级的免费开源电子书阅读器,还支持听书功能

神仙级的免费开源电子书阅读器,还支持听书功能,极空间部署『KoodoReader』哈喽小伙伴们好,我是Stark-C~前段时间不是给大家分享的电子书管理工具『TaleBook』嘛~,然后就有粉丝私信...

如何在Ubuntu系统中重置root密码(ubuntu忘记密码重置root密码命令)

很多人有个问题,就是喜欢把密码设置得很长很复杂,结果谁也没防住,却成功防住了自己ヽ(.ˇдˇ;)ノ对于现代人,特别是年轻人,都有过忘记密码的经历吧。在这篇文章中,我们来了解如何在Ubuntu1...

5款功能强大的PDF阅读器,让PDF阅读更轻松

分享5款功能强大的PDF阅读器,拥有丰富的PDF阅读工具,支持PDF文档划线、笔记、标记等操作,让PDF阅读更轻松!1.嗨动PDF编辑器一款实用的PDF处理软件,不仅可以阅读PDF文档,还能直接编辑、...

上班摸鱼利器! 免费好用的电子书阅读器,NAS轻松部署Koodo Reader

哈喽,大家好我是生活爱好者。笔者也是一名小说爱好者,平时用手机用某信读书,会员也开了,在家看体验也不错,但是上班的时候,在工作快速完成之后,想摸个鱼用手机就不太方便啦,作为爱折腾的人,必须要工作认真,...