当前位置:   article > 正文

docker自定义java镜像(解决java:8镜像不支持arm64/aarch64的问题)_dockerfile中指定的基础镜像 匹配 aarch64

dockerfile中指定的基础镜像 匹配 aarch64

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

承接上文,在麒麟V10服务器(Linux内核为arm64/aarch64的云服务器)已经离线安装好docker,安装好对应版本的且可以使用的jdk,服务器上有arrch64版本的jdk安装包(如:jdk-8u311-linux-aarch64.tar.gz),在构建应用服务容器时候,会提示jdk镜像不存在,或者存在会报错说jdk镜像和系统不符合(因为java镜像默认是支持linux内核86的),这时我们可以通过通过docker构建我们自己想要的java1.8镜像,支持arrch64的系统。


一、查找符合条件的centos镜像

在dockerhub页面查询centos7的镜像,获取到(linux/arm64/v8)版本的sha256码,找到一台有网络的linux服务器,拉取centos镜像(注意:一定要指定对应的sha256,不然会默认下载86内核版本的镜像)。
在这里插入图片描述
链接: centos7地址

二、找到一台有网络的linux服务器

1.拉取 arm64的centos镜像

docker pull centos@sha256:43964203bf5d7fe38c6fca6166ac89e4c095e2b0c0a28f6c7c678a1348ddc7fa
  • 1

2.pull下载需要的镜像文件。

docker save 镜像id > /home/centos.tar
  • 1

三、内网服务器(麒麟V10)内构建java镜像

1.将tar文件上传到内网服务器,使用如下命令导入镜像文件:

docker load < /home/centos.tar
  • 1

2.查看导入的镜像文件并重命名镜像

docker images

docker image tag 镜像id centos:7
  • 1
  • 2
  • 3

此时已经安装好arrch64版本centos7镜像,我们可以依赖这个系统镜像去构建arrch64版本的java1.8镜像。

3.创建文件夹,上传指定jdk,编写Dockerfile文件

#创建一个文件夹放**Dockerfile和指定jdk
mkdir -p /home/docker/java

#切换到该路径
cd /home/docker/java

#创建一个Dockerfile文件
vi Dockerfile
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

编写的Dockerfile如下:
这个是以centos7镜像为基础,构建镜像内的java1.8环境变量。

#依赖的环境
FROM centos:7
#作者
MAINTAINER shiwei

#ADD 把java添加到容器中指定位置
ADD jdk-8u311-linux-aarch64.tar.gz /usr/docker/java

#环境配置
ENV JAVA_HOME /usr/docker/java/jdk1.8.0_311
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
ENV PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

4.打包镜像

docker build -t java:1.8 .
  • 1

5.查看镜像, 使用镜像创建容器,测试镜像是否正常

docker images

#创建容器并进入
# -it 终端交互式操作
# --name 给容器命名
# /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell
docker run -it --name java-jdk-demo java:1.8 /bin/bash

# 然后输入,出现java版本说明容器没有问题  
java -version   

#退出容器
exit
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

总结

以上就是在麒麟V10构建java1.8镜像的全部过程,这样子有了java1.8的基础镜像,在内网环境部署应用程序就变得轻而易举。接下来我将详细讲解一下麒麟V10下部署nosql数据库和达梦数据库。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/520753
推荐阅读
相关标签
  

闽ICP备14008679号