什么是Dockerfile
Dockerfile是由一系列命令和参数构成的脚本
这些命令应用于基础镜像并最终创建一个新的镜像
常用命令
FROM image_name:tag // 定义了使用哪个基础镜像启动构建流程
MAINTAINER user_name // 声明镜像的创建者
ENV key value // 设置环境变量(可以写多条)
RUN command // 是Dockerfile的核心部分(可以写多条)
ADD source_dir/file dest_dir/file // 将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压
COPY source_dir/file dest_dir/file // 和ADD相似,如果有压缩文件不会解压
WORKDIR path_dir // 设置工作目录
构建JDK1.8镜像
sudo mkdir -p /usr/local/dockerjdk8 # 创建一个存放镜像的目录
sudo apt-get install lrzsz # 安装上传工具
sudo rz # 然后上传jdk的压缩包
sudo docker pull # jdk需要一个系统作为基础镜像,先下载好
sudo apt-get install vim
sudo vim Dockerfile # 构建Dockerfile(名字必须一模一样) 内容如下:
FROM ubuntu:16.04
MAINTAINER Lanceli
WORKDIR /usr
RUN mkdir /usr/local/java
ADD OpenJDK8U-jdk_x64_linux_openj9_8u272b10_openj9-0.23.0.tar.gz /usr/local/java/
ENV JAVA_HOME /usr/local/java/jdk8u272-b10
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
sudo docker build -t='jdk1.8' . # 构建 -t指定镜像名称 . 是指当前目录,它会自动去找Dockerfile
sudo docker images # 发现多了一个jdk1.8的镜像