云原生—Docker—Docker打包jdk镜像

编写Dockerfile

vim Dockerfile


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

FROM centos:7


#2.指明该镜像的作者和其电子邮件

MAINTAINER zhangyao "zy963613606@aliyun.com"


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

WORKDIR /javaxh_docker/jdk


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

ADD jdk-8u281-linux-x64.tar.gz /javaxh_docker/jdk/


#5.配置环境变量

ENV JAVA_HOME=/javaxh_docker/jdk/jdk1.8.0_281

ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

ENV PATH=$JAVA_HOME/bin:$PATH


#容器启动时需要执行的命令

#CMD ["java","-version"]


上述文件需要根据jdk压缩包的路径,版本修改

编译镜像

# jdk1.8为镜像名 后面为TAG 最后为Dockerfile的路径,.表示当前目录

docker build -t jdk1.8:<TAG> .

打包导出

 #保存镜像 jdk.tar 文件名称 后面为镜像:TAG

 docker save -o jdk.tar jdk1.8:v1.1

 

 #导入镜像

 docker load -i jdk.tar


遇到的问题

记录下在上述过程中遇到的问题:

容器启动后进入容器运行java -version命令,提示java命令不存在

# 使用echo $PATH输出环境变量,发现是Dockerfile中的ENV JAVA_HOME=/javaxh_docker/jdk/jdk1.8.0_281 路径与实际路径不一致导致的,修改Dockerfile后重新编译打包即可

echo #PATH

若有收获,就点个赞吧

上一篇:平台日志组件使用介绍


下一篇:Mirantis 收购 Docker EE| 云原生生态周报 Vol. 28