ubantu24.04 使用DOCKER 安装部署jdk17 和jdk21
时间: 2025-03-07 13:03:12 浏览: 33
### 使用 Docker 在 Ubuntu 24.04 上安装和配置 JDK 17 和 JDK 21
#### 准备工作
为了在Ubuntu 24.04上利用Docker容器化技术来安装并配置JDK 17和JDK 21,首先要确保已经正确设置了Docker环境。这一步骤可以通过官方文档指导完成[^2]。
#### 创建自定义Dockerfile以支持多版本JDK
对于希望在同一主机的不同容器内分别运行不同版本的Java应用而言,编写特定于各版本的`Dockerfile`是一个有效的方法。下面展示如何构建适用于JDK 17与JDK 21的基础镜像:
##### 构建基于Alpine Linux精简版的JDK 17镜像
```dockerfile
# 使用轻量级基础镜像减少最终镜像大小
FROM alpine:latest AS builder
RUN apk add --no-cache openjdk17-jre tzdata && \
mkdir /opt/jdk17 && \
ln -sf /usr/lib/jvm/default-jvm/bin/java /usr/local/bin/
WORKDIR /app
COPY . .
CMD ["java", "-version"]
```
##### 构建基于Debian系统的JDK 21预览版镜像
```dockerfile
FROM debian:buster-slim
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
apt-get install -y software-properties-common && \
add-apt-repository ppa:linuxuprising/java && \
apt-get update && \
echo debconf shared/accepted-oracle-license-v1-2 select true | \
debconf-set-selections && \
apt-get install -y oracle-java21-installer && \
rm -rf /var/cache/oracle-jdk21-installer && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY . .
CMD ["bash"]
```
请注意,在实际操作过程中可能需要调整上述脚本中的具体命令以适应最新的软件源或安装方式变化;特别是针对Oracle JDK 21部分,因为其处于早期访问阶段,所以采用PPA的方式获取可能是必要的选择之一。
#### 编写 `docker-compose.yml` 文件实现一键启动两个JDK版本的服务
通过组合使用`docker-compose`工具可以让整个过程更加简便高效:
```yaml
version: '3'
services:
jdk17-service:
build: ./path/to/jdk17/Dockerfile
container_name: my_jdk17_container
environment:
JAVA_HOME: /usr/lib/jvm/default-jvm/
ports:
- "8080:8080"
jdk21-service:
build: ./path/to/jdk21/Dockerfile
container_name: my_jdk21_container
environment:
JAVA_HOME: /usr/lib/jvm/java-21-oracle/
ports:
- "9090:9090"
```
此设置允许用户仅需执行一次`docker-compose up`指令就能同时启动两个独立运作且互不干扰的Java应用程序实例——各自对应不同的JDK版本。
#### 验证安装成功与否
一旦完成了以上所有步骤之后,可通过如下命令验证是否能够正常调用相应版本下的Java解释器:
```shell
$ docker exec -it my_jdk17_container java -version
openjdk version "17" ...
$ docker exec -it my_jdk21_container java -version
java version "21-ea" ... (表示这是Java 21的一个早期访问版本)
```
阅读全文
相关推荐


















