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

文章目录

前言

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

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

  • 1.拉取 arm64的centos镜像
  • 2.pull下载需要的镜像文件。
  • 三、内网服务器(麒麟V10)内构建java镜像
  • 1.将tar文件上传到内网服务器,使用如下命令导入镜像文件:
  • 2.查看导入的镜像文件并重命名镜像
  • 3.创建文件夹,上传指定jdk,编写Dockerfile文件
  • 4.打包镜像
  • 5.查看镜像, 使用镜像创建容器,测试镜像是否正常
  • 总结


前言

承接上文,在麒麟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内核版本的镜像)。

麒麟V10 离线安装harbor docker_运维

链接: 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环境变量。

#依赖的环境
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数据库和达梦数据库。