docker制作高版本jdk17镜像踩坑 您所在的位置:网站首页 jdk17安装失败 docker制作高版本jdk17镜像踩坑

docker制作高版本jdk17镜像踩坑

2024-07-04 22:04| 来源: 网络整理| 查看: 265

1、创建目录并下载jdk上传到服务器中

从jdk官网下载jdk17镜像,提示:下载到本地用xftp上传到服务器(速度会快点)

jdk官网:https://www.oracle.com/java/technologies/downloads/#graalvmjava21

创建目录,将下载好的jdk17塞进去

mkdir -p /usr/local/dockerjdk17_yp cd /usr/local/dockerjdk17_yp

 编写dockerfile

FROM centos:7 MAINTAINER emon WORKDIR /usr/local/java ADD jdk17.tar.gz /usr/local/java/ ENV JAVA_HOME=/usr/local/java/jdk-17.0.10 ENV CLASSPATH=.:$JAVA_HOME/lib/jrt-fs.jar ENV PATH=$PATH:$JAVA_HOME/bin

资料中注意:ENV JAVA_HOME=/usr/local/java/jdk-17.0.10 中的jdk-17.0.10不要替换成jdk-17_linux-x64_bin.tar.gz ,因为ADD jdk17.tar.gz命令中ADD自带解压缩的功能,而jdk-17_linux-x64_bin.tar.gz 解压缩后并不是直接去掉压缩后缀,所以最好先解压一遍看下解压之后的文件夹名是什么,再替换文件目录名

解读:需要将JAVA_HOME=中=后面的路径写为解压完jdk后的文件路径,如图

点完1以后就会出现2,需要将2的文件名称写入到dockerfile中,也就是这一行

ENV JAVA_HOME=/usr/local/java/jdk-17.0.10

2的地方是jdk-17.0.10,就是替换为jdk-17.0.10就可以了

接下来就可以正常构建镜像了

3、构建镜像(注意后面有点,表示当前目录) docker build -t='java17_yp' .

这里的java17_yp就是镜像的名字

4、启动镜像 docker run -di --name java17_yp -d java17_yp 解释: 这个 docker run 命令用于在Docker中启动一个新的容器实例。让我们分解一下各个部分: docker run: 这是Docker命令行工具的子命令,用于启动一个新的容器实例。 -d: 这个标志表示在后台运行容器(detach mode),也就是说,容器会立即返回控制台,而不是阻塞在容器的输出上。 --name centos7-java17: 这个选项用于指定新创建的容器的名称为 centos7-java17,方便后续管理和引用。 -i: 这个标志开启交互模式,即使在后台运行,也保持容器的标准输入打开,允许后续的交互(例如通过docker attach连接)。 -d centos7-java17: 这里看起来是一个错误,因为通常 -d 后面应该跟的是容器镜像的名称或ID,但在这里,-d 和 --name 选项的顺序颠倒了。如果-d后面紧跟着的是镜像名称,那应该是正确的,但在这种情况下,它看起来像是重复了-d标志。正确的用法应该是只保留一个 -d。 centos7-java17: 这应该是指定的Docker镜像名称,假设你有一个预先构建好的镜像,名为 centos7-java17,该镜像基于CentOS 7并预装了Java 17。 综上所述,这个命令的意图是启动一个基于 centos7-java17 镜像的新容器,并将其命名为 centos7-java17,同时在后台运行(-d)并保持交互性(-i)。由于 -d 和 --name 选项的位置不正确,命令可能无法按预期工作。正确的命令应该是:

看完就可以停止容器了,为了保存内存

5、进入容器 docker exec -it 容器ID /bin/bash 6、查看版本 java -version



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有