1、资源准备

下载java11的jdk

下载地址:https://www.oracle.com/java/technologies/javase-jdk11-downloads.html

选择linux-64的版本(jdk-11.0.7_linux-x64_bin.tar.gz)

2、创建Dockerfile文件

文件内容如下:

#1.指定基础镜像,并且必须是第一条指令
FROM centos:7

#2.指明该镜像的作者和其电子邮件
MAINTAINER taolong.hong "taolong.hong@qq.com"

#3.在构建镜像时,指定镜像的工作目录,之后的命令都是基于此工作目录,如果不存在,则会创建目录
WORKDIR /soft/jdk

#4.一个复制命令,把jdk安装文件复制到镜像中,语法:ADD <src>... <dest>,注意:jdk*.tar.gz使用的是相对路径
ADD jdk-11.0.7_linux-x64_bin.tar.gz /soft/jdk/

#5.设置时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone

#6.配置环境变量
ENV JAVA_HOME=/soft/jdk/jdk-11.0.7
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$JAVA_HOME/bin:$PATH

#容器启动时需要执行的命令
#CMD ["java","-version"]

上面都写了注释,也比较简单,不多说了

3、构建镜像(docker build)

我这里jdk-11.0.7_linux-x64_bin.tar.gz 和Dockerfile放在同一个目录下面的,直接用docker build指定当前路径即可

docker build -t “仓库路径xxx/java:11” .

注意后面的“.”表示当前路径,如果不是当前路径需要用-f指定

4、推送到远程仓库

前面如果-t指定了仓库的路径,则直接使用docker push即可 ,否则用docker tag

5、测试

(1)测试centos时区:进入容器输入date

(2)测试java环境:进入容器输入java -version

(3)测试jdk时区:编写一个.java文件,里面打印LocalDateTime打印时间

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐