栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

基于芯片m1的mac在Centos8中利用docker安装Java jdk 所遇到及解决的方法

Java 更新时间:发布时间: 百科书网 趣学号
docker 下载java-jdk

背景: 由于电脑上mac-m1芯片的,且在mac装的虚拟机安装也只支持aarch64版(目前),所以安装jdk就出现各种和版本不适配的问题,下载各种版本都不支持,无奈只好通过Dockerfile的方式解决

1. 下载支持aarch64的jdk

下载jdk-8u301-linux-aarch64.tar.gz (该版本支持运行)
下载地址:支持aarch64的jdk版本
文末可以获取提取码1

2.配置Dockerfile前的准备工作
  1. 可以在虚拟机上新建一个文件夹,将文件放在该目录下(我新建的目录是:/usr/local/jdk,仅供参考,大家可根据自己喜好新建)
  2. 通过rz指令将下载好的jdk-8u301-linux-aarch64.tar.gz上传到/usr/local/jdk目录下并解压tar -zxvf jdk-8u301-linux-aarch64.tar.gz ,同时在该目录下创建Dockerfile文件touch Dockerfile如图:
3.配置Dockerfile
1. vi Dockerfile

将配置指令写入该文件中如下:

FROM centos:8
ADD jdk-8u301-linux-aarch64.tar.gz /usr/local
ENV JAVA_HOME /usr/local/jdk1.8.0_301
ENV JRE_HOME ${JAVA_HOME}/jre 
ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib 
ENV PATH ${JAVA_HOME}/bin:$PATH 

[指令讲解]:

  1. FROM centos:8 基于cntos8,如果没有这个镜像那么它会下载这个镜像,这个必须写,而且必须是写虚拟机的版本,如果将此处centos:8 更改成java或者其他,那么后续你安装就会出现,jdk安装不能适配aarch64版的虚拟机.
  2. 如果复制代码,一定要复制全,尤其是FROM一定要全,否则下一步构建镜像就会报"Sending build context to Docker daemon 2.56kB Error response from daemon: dockerfile parse error ”
  3. ADD jdk-8u301-linux-aarch64.tar.gz /usr/local中add会自动解压到指定的目录,此处我的是usr/local下(这个解压是解压到容器中的目录,并不是我们虚拟机上的目录,而且这个目录是根据自己平时使用爱好来设置,比如我一般喜欢把软件放在usr/local目录下,大家也可以根据自己爱好来设置)
  4. ENV :是jdk环境配置,类似我们之前在/etc/profile中通过export来进行环境配置,注意:ENV JAVA_HOME /usr/local/jdk1.8.0_301此处目录一定是add中指定的目录下一级,否则安装完之后,运行Java -version 就会出现无该指令
  5. 保存该文件推出
4. 运行配置文件 Dockerfile
  1. 运行如下指令即可,出现如下图尖头所指方向即安装成功
     //注意这个.一定要有,且-t后面是镜像名称,大家可以根据自己需要更改
    docker build -t='jdk1.8' . 
    
5.运行jdk镜像
  1. 执行指令:docker run -it --name=jdk8 jdk1.8:latest /bin/bash 镜像启动同时进入容器内部
  2. 查看jdk是否安装成功,执行java --version
6.扩展:jdk退出后如何再次启动
  1. 到5,jdk就已经安装完成了,但是我们也遇到一个问题就是安装之后如果退出容器,jdk就挂掉了
  2. 想要一直运行执行指令:docker start jdk8 即可
  3. 我们再次查看,jdk在运行中

  1. 提取码:31v4 ↩︎

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/957490.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号