背景
- 项目学习之初, 在本地用的是 jdk21, 所以如果想要用 docker 部署, 就需要 jdk21 的镜像, 很遗憾, 在网上没找到现成的( 也有可能是我不会找)
准备工作
- 
    一台 Linux 服务器, 我在阿里云上买的 centos 7.9 
- 
    jdk-21_linux-x64_bin.tar.gz 下载地址 
- 
    apache-maven-3.9.9-bin.tar.gz 下载地址 
制作流程
- 
    新建一个目录: jdk(目录名字随便起, 我使用的是 jdk) mkdir jdk
- 
    将下载好的 jdk 和 maven 文件放入 jdk 目录 [root@iZ2zebhs1xui02zif4j269Z jdk]# ls apache-maven-3.9.9-bin.tar.gz Dockerfile jdk-21_linux-x64_bin.tar.gz
- 
    在 jdk 目录下新建一个 Dockerfile 文件 FROM centos:7.9.2009 ADD jdk-21_linux-x64_bin.tar.gz /usr/local ADD apache-maven-3.9.9-bin.tar.gz /usr/local ENV JAVA_HOME=/usr/local/jdk-21.0.4 ENV MAVEN_HOME=/usr/local/apache-maven-3.9.9 ENV PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
- 
    执行 Dockerfile docker build -t jdk21-mvn3.9.9:v1.0 .- 执行结果
 Sending build context to Docker daemon 206.7 MB Step 1/6 : FROM centos:7.9.2009 ---> eeb6ee3f44bd Step 2/6 : ADD jdk-21_linux-x64_bin.tar.gz /usr/local ---> Using cache ---> 2b98b6050f9d Step 3/6 : ADD apache-maven-3.9.9-bin.tar.gz /usr/local ---> Using cache ---> 19cb5303fe32 Step 4/6 : ENV JAVA_HOME /usr/local/jdk-21.0.4 ---> Running in 969b02b55e92 ---> b7925c208a9c Removing intermediate container 969b02b55e92 Step 5/6 : ENV MAVEN_HOME /usr/local/apache-maven-3.9.9 ---> Running in 9ada82a6e0ed ---> 5a2a35a2bd52 Removing intermediate container 9ada82a6e0ed Step 6/6 : ENV PATH $JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH ---> Running in 560722dc16f8 ---> 607c4b496e18 Removing intermediate container 560722dc16f8 Successfully built 607c4b496e18
- 
    启动镜像 docker run -it -d --hostname jdk-test --name jdk-test jdk21-mvn3.9.9:v1.0
- 
    进入容器查看 jdk 和 maven 启动情况 docker exec -it jdk-test bash- 查看 Java 版本
 java -version- 执行结果
 java 21.0.4 2024-07-16 LTS Java(TM) SE Runtime Environment (build 21.0.4+8-LTS-274) Java HotSpot(TM) 64-Bit Server VM (build 21.0.4+8-LTS-274, mixed mode, sharing)- 查看 mvn 版本
 mvn -v- 执行结果
 Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937) Maven home: /usr/local/apache-maven-3.9.9 Java version: 21.0.4, vendor: Oracle Corporation, runtime: /usr/local/jdk-21.0.4 Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "3.10.0-1127.19.1.el7.x86_64", arch: "amd64", family: "unix"
测试成功, 上传到镜像仓库, 至此我需要的 docker 镜像完成