关于docker基于arm64平台配置jdk1.8环境记录

本文档介绍了如何在Docker中创建基于Ubuntu的ARM64架构的OpenJDK 1.8镜像。首先从DockerHub拉取Ubuntu基础镜像,然后下载适用于ARM64的JDK安装包,并通过Dockerfile配置环境变量。通过编写Dockerfile,将JDK安装到镜像中,并设置相应的环境变量。最后,使用`docker build`命令生成定制的OpenJDK镜像,并演示了如何运行该镜像验证Java版本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

docker有默认的openjdk镜像,但是版本较低, 我记得好像是基于1.7的,如果你需要以上版本的docker镜像, 可以按照我的方式试试。

首先看先docker官网上的镜像:Docker Hub

具体自己上官网查看

=》我用得是基于ubuntu基础镜像自己制作1.8版本的jre镜像

分以下几个步骤:

一:按照上序方式直接下载arm64位平台ubuntu基础镜像,

或者执行docker pull --platfrom=arm64 ubuntu:16.04进行拉取,拉下来可以使用docker inspect 指令查看下docker适配的平台

 这样就是64位平台了

二:下载基于arm64位的jdk安装包, 这个网上有,我这里提供一份1.8.0.211版本的安装包

链接:https://pan.baidu.com/s/1o2hu-tqwsB3jciKQsrrxoQ 
提取码:0315

>>>>>>>>>>>tomcat8.5.24

链接:https://pan.baidu.com/s/1t8ppGYti_uNgC6h2OCgnqQ 
提取码:nin9

三:基于ubuntu基础镜像制作jdk环境变量

Dockerfile_arm:

ARG BUILD_FROM=arm64v8     //指定相关平台

FROM ${BUILD_FROM}/ubuntu:16.04  //这里是你拉取的ubuntu镜像名称

RUN apt-get -y update    //可以删除

ADD	 jre  /build/jre     //将jdk安装包解压为文件夹  copy至容器

#RUN  tar -zxf /build/jre/jdk-8u221-linux-x64.tar.gz -c /build/
#RUN  tar -zxf /build/jre/apache-tomcat-8.5.42.tar.gz -c /build/

#RUN apt-get -y update &&\
    apt-get install -y \
			vim patch unzip \
			git make wget \
			curl rsync

RUN  mv /build/jre/apache-tomcat-8.5.42 /opt/tomcat
RUN  mv /build/jre/jdk1.8.0_211 /opt/jdk

RUN sed -i '$a\JAVA_HOME=/opt/jdk\nJAVA_BIN=/opt/jdk/bin\nJRE_HOME=/opt/jdk/jre\nCLASSPATH=/opt/jdk/jre/lib:/opt/jdk/lib:/opt/jdk/jre/lib/charsets.jar\nexport  JAVA_HOME  JAVA_BIN JRE_HOME  PATH  CLASSPATH' /etc/profile

RUN sed -i '$a\export JAVA_HOME=/opt/jdk/\nexport PATH=$JAVA_HOME/bin:$PATH\nexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' ~/.bashrc

ENV JAVA_HOME=/opt/jdk
ENV JAVA_BIN=/opt/jdk/bin
ENV JRE_HOME=/opt/jdk/jre
ENV CLASSPATH=/opt/jdk/jre/lib:/opt/jdk/lib:/opt/jdk/jre/lib/charsets.jar
ENV PATH=/opt/jdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin


WORKDIR /build

#ENTRYPOINT ["/bin/bash", "-c", "source ~/.bashrc; tail -f /dev/null"]

上面需要注意的就是:ENV 环境变量配置一定要加上, 不然后面在外面基于docker执行Java命令会提示找不到,这个问题我是找了很久才发现

执行以下命令生产docker镜像

  • docker build -t metaverse -f Dockerfile_arm --network=host --build-arg BUILD_FROM=arm64v8 -t test_jre:V1.0.1 .

        -t metaverse  做备份
        --network=host 直连网络模式

        BUILD_FROM=arm64v8 指定平台编译  这个一定得加上, 不然会出问题

        test_jre:V1.0.1:镜像名称

  • docker run -it -v /var/run/docker.sock:/var/run/docker.sock -v $PWD/:/opt/local/ test_jre:V1.0.1 java --version
  • docker run -d --privileged=true --name test1 -v /var/run/docker.sock:/var/run/docker.sock -v $PWD:/opt/local/ test_jre:V1.0.1  作为守护进程执行
  • docker exec  test 1  java xxxx.java  
要下载arm64jdk,可以按照以下步骤进行操作: 1. 首先,你需要从官方网站或其他可靠来源下载基于arm64位的jdk安装包。根据你的需求,你可以选择下载任何版本jdk。比如,你可以下载1.8.0.211版本jdk安装包。 2. 下载完安装包后,你可以使用docker构建命令来生成docker镜像。在命令行中执行以下命令: docker build -t jdk-arm64 -f Dockerfile_arm --platform=linux/arm64 --build-arg JDK_VERSION=1.8.0.211 . 这个命令会使用Dockerfile_arm文件来构建一个名为jdk-arm64docker镜像,并将安装包的路径和版本作为构建参数传递给镜像。 3. 在构建过程完成后,你就可以使用这个镜像来创建和运行arm64位的jdk容器了。你可以使用docker run命令来启动一个新的容器并在其中运行你的应用程序。记得在运行容器时要指定正确的镜像名称。例如: docker run -it jdk-arm64 java -version 这个命令会启动一个基于arm64位的jdk容器,并在容器中运行java -version命令来验证jdk的安装情况。 #### 引用[.reference_title] - *1* *2* *3* [关于docker基于arm64平台配置jdk1.8环境记录](https://blog.csdn.net/huang422600/article/details/122994314)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值