背景
近期的大数据项目需要使用ARM环境的服务器;为啥选择华为云呢,因为华为云鲲鹏服务器,具备多核高并发特点,非常适合AI、大数据、HPC、云手机/云游戏等场景,满足了我们的需求,所以选择了华为云鲲鹏服务器(支持国产)。华为云服务器,新注册用户1.5折起
制作JDK基础镜像
下载jdk软件
官网地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
本次选择的版本是ARM64版的软件包(jdk-8u271-linux-aarch64.tar.gz)
注意:下载可能需要注册账号
下载alpine镜像
下载apline基础镜像,在dokcer hub上查找适合的镜像即可;需要注意的是,jdk在alpine中运行需要安装glibc,故本次选择的版本:cyphernode/alpine-glibc-base:arm64-v3.11.0_2.29-0
dokcer pull cyphernode/alpine-glibc-base:arm64-v3.11.0_2.29-0
Dockerfile
#1.指定基础镜像,并且必须是第一条指令
FROM cyphernode/alpine-glibc-base:arm64-v3.11.0_2.29-0
#2.指明该镜像的作者和其电子邮件
MAINTAINER lshcc@163.com
#3.设置时间
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
#4.将一些安装包复制到镜像中,语法:ADD/COPY <src>... <dest>
## ADD与COPY的区别:ADD复制并解压,COPY仅复制
ADD jdk-8u271-linux-aarch64.tar.gz /usr/local/
#5.配置环境变量
ENV JAVA_HOME=/usr/local/jdk1.8.0_271
ENV JRE_HOME=${JAVA_HOME}/jre
ENV CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
ENV PATH=$PATH:${JAVA_HOME}/bin:$JRE_HOME/bin
运行Dockerfile
新建目录,将Dockerfile和JDK软件包放在同一目录下
[root@test-0002 pkg]# ls
Dockerfile jdk-8u271-linux-aarch64.tar.gz
[root@test-0002 pkg]#
构建JDK基础镜像
# 镜像名称自定义
docker build -t jdk8-arm64:v1 .
测试
运行docker镜像,查看java版本