- 编写Dockerfile
- 1.指定基础镜像,并且必须是第一条指令
FROM centos:7 - 2.指明该镜像的作者和其电子邮件
MAINTAINER zhangyao “zy963613606@aliyun.com” - 3.在构建镜像时,指定镜像的工作目录,之后的命令都是基于此工作目录,如果不存在,则会创建目录
WORKDIR /javaxh_docker/jdk - 4.一个复制命令,把jdk安装文件复制到镜像中,语法:ADD
… ,注意: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”] - jdk1.8为镜像名 后面为TAG 最后为Dockerfile的路径,.表示当前目录
docker build -t jdk1.8:. - 保存镜像 jdk.tar 文件名称 后面为镜像:TAG
docker save -o jdk.tar jdk1.8:v1.1
#导入镜像
docker load -i jdk.tar - 使用echo $PATH输出环境变量,发现是Dockerfile中的ENV JAVA_HOME=/javaxh_docker/jdk/jdk1.8.0_281 路径与实际路径不一致导致的,修改Dockerfile后重新编译打包即可
echo #PATH
操作步骤:
- 下载jdk-linux压缩包 https://www.oracle.com/java/technologies/downloads/#java8
- 编写Dockerfile
- 编译镜像
- 打包镜像导出
编写Dockerfile
vim Dockerfile
1.指定基础镜像,并且必须是第一条指令
FROM centos:7
2.指明该镜像的作者和其电子邮件
MAINTAINER zhangyao “zy963613606@aliyun.com”
3.在构建镜像时,指定镜像的工作目录,之后的命令都是基于此工作目录,如果不存在,则会创建目录
WORKDIR /javaxh_docker/jdk
4.一个复制命令,把jdk安装文件复制到镜像中,语法:ADD … ,注意:jdk*.tar.gz使用的是相对路径
ADD jdk-8u281-linux-x64.tar.gz /javaxh_docker/jdk/
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: .
打包导出
保存镜像 jdk.tar 文件名称 后面为镜像:TAG
docker save -o jdk.tar jdk1.8:v1.1
#导入镜像
docker load -i jdk.tar
遇到的问题
记录下在上述过程中遇到的问题:
容器启动后进入容器运行java -version命令,提示java命令不存在
