提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
承接上文,在麒麟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
2.pull下载需要的镜像文件。
docker save 镜像id > /home/centos.tar
三、内网服务器(麒麟V10)内构建java镜像
1.将tar文件上传到内网服务器,使用如下命令导入镜像文件:
docker load < /home/centos.tar
2.查看导入的镜像文件并重命名镜像
docker images
docker image tag 镜像id centos:7
此时已经安装好arrch64版本centos7镜像,我们可以依赖这个系统镜像去构建arrch64版本的java1.8镜像。
3.创建文件夹,上传指定jdk,编写Dockerfile文件
#创建一个文件夹放**Dockerfile和指定jdk
mkdir -p /home/docker/java
#切换到该路径
cd /home/docker/java
#创建一个Dockerfile文件
vi Dockerfile
编写的Dockerfile如下:
这个是以centos7镜像为基础,构建镜像内的java1.8环境变量。文章来源:https://www.toymoban.com/news/detail-793305.html
#依赖的环境
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
4.打包镜像
docker build -t java:1.8 .
5.查看镜像, 使用镜像创建容器,测试镜像是否正常
docker images
#创建容器并进入
# -it 终端交互式操作
# --name 给容器命名
# /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell
docker run -it --name java-jdk-demo java:1.8 /bin/bash
# 然后输入,出现java版本说明容器没有问题
java -version
#退出容器
exit
总结
以上就是在麒麟V10构建java1.8镜像的全部过程,这样子有了java1.8的基础镜像,在内网环境部署应用程序就变得轻而易举。接下来我将详细讲解一下麒麟V10下部署nosql数据库和达梦数据库。文章来源地址https://www.toymoban.com/news/detail-793305.html
到了这里,关于docker自定义java镜像(解决java:8镜像不支持arm64/aarch64的问题)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!