本文最后更新于 2024-07-08,文章内容可能已经过时。

2.4 Docker部署JDK

一、jdk17部署(自定义镜像)

1.在官网上下载jdk-17_linux-x64_bin.tar.gz,并上传到/usr/local/dockerjdk17目录下

https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz

cd /usr/local
mkdir dockerjdk17
cd dockerjdk17
wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz

2.创建Dockerfile

vim Dockerfile
```shell
# 基于官方的centos:7镜像作为基础镜像
FROM centos:7
MAINTAINER Graypigeon
# 进入相应目录
WORKDIR /usr/local/java
# 复制文件
ADD jdk-17_linux-x64_bin.tar.gz /usr/local/java/
# 设置环境变量
ENV JAVA_HOME=/usr/local/java/jdk-17.0.11
ENV CLASSPATH=.:$JAVA_HOME/lib/jrt-fs.jar
ENV PATH=$PATH:$JAVA_HOME/bin

image-20240705150623745

注意:jdk-17.0.11,该版本与jdk-17_linux-x64_bin.tar.gz解压后的版本需一致,否则配置环境变量会错误。

Dockerfile修改后需要重新部署镜像和容器

3.构建Docker镜像

在Dockerfile所在的目录下执行以下命令构建Docker镜像:

docker build -t jdk17 .

image-20240705150711542

4.运行Docker容器

docker run -it --restart=always --name jdk17 jdk17

其中,-it参数表示交互式运行容器,并使容器的标准输入保持打开状态。

自动进入容器终端,查看 java jdk 版本
java -version

image-20240705151700869

若报如上错误请看步骤2,成功 后 如下:

image-20240705151829803

5.验证jdk安装

进入容器并执行命令
docker exec -it jdk17 /bin/bash
查看 java jdk 版本
java -version

二、jdk8部署(使用第三方镜像)

1.下载 oracle 官方 java jdk 镜像,默认下载最新版本,以下选择jdk8

docker pull docker.io/java:8

2.查看 Docker Java JDK 版本

查看本地下载好的镜像
docker images
查看容器列表
docker ps -a
运行 java jdk 容器
docker run -it --name jdk8 --restart=always -d docker.io/java:8

​ -i:以交互模式运行容器,通常与 -t 同时使用
​ -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用
​ –name:自定义容器名
​ -d:表示后台运行
​ docker.io/java:8:指定运行的镜像名称,根据自己实际情况填写,也可以是 image id

再次查看当前运行的容器
docker ps
启动容器
docker start jdk8
进入容器并执行命令
docker exec -it java-jdk8 /bin/bash
进入容器后,查看 java jdk 版本
java -version
退出容器
exit

已经创建过的容器,如果创建时未指定 –restart=always,可通过update 命令设置

docker update --restart=always 容器ID(或者容器名)

参考:https://blog.csdn.net/liu20121787/article/details/129698907