Dockerfile 简介
- 常用保留字
FROM
    基础镜像, 当前新镜像是基于哪个镜像的, 指定一个已经存在的镜像作为模板, 第一条必须是FROM
MAINTAINER
    镜像维护者的姓名和邮箱地址
RUN
    容器构建时需要运行的命令, 有两种格式
        RUN yum -y install vim
        RUN ["./test.sh", "para1", "para2"]
EXPOSE
    当前容器对外暴露出的端口
WORKDIR
    指定在创建容器后, 终端默认登陆的进来工作目录, 一个落脚点
USER
    指定该镜像以什么样的用户去执行, 如果都不指定, 默认是root
ENV
    用来在构建镜像过程中设置环境变量
ADD
    将宿主机目录下的文件拷贝进镜像且会自动处理URL和解压tar压缩包
COPY
    类似ADD, 拷贝文件和目录到镜像中. 将从构建上下文目录中 <源路径> 的文件/目录复制到新的一层的镜像内的 <目标路径> 位置
    方法:
        COPY src dest
        COPY ["src", "dest"]
VOLUME
    容器数据卷, 用于数据保存和持久化工作
CMD
    指定容器启动后的要干的事情, 同上分为shell格式和exec格式
    Dockerfile 中可以有多个 CMD 指令, 但只有最后一个生效, CMD 会被 docker run 之后的参数替换
ENTRYPOINT
    也是用来指定一个容器启动时要运行的命令
    类似于 CMD 指令, 但是ENTRYPOINT不会被docker run后面的命令覆盖,  而且这些命令行参数会被当作参数送给 ENTRYPOINT 指令指定的程序
- 编写 centos 安装 java 环境
FROM centos
MAINTAINER zzyy<zzyybs@126.com>
 
ENV MYPATH /usr/local
WORKDIR $MYPATH
 
# 安装vim编辑器
RUN yum -y install vim
# 安装ifconfig命令查看网络IP
RUN yum -y install net-tools
# 安装java8及lib库
RUN yum -y install glibc.i686
RUN mkdir /usr/local/java
# ADD 是相对路径jar,把jdk-8u171-linux-x64.tar.gz添加到容器中,安装包必须要和Dockerfile文件在同一位置
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/
# 配置java环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
 
EXPOSE 80
 
CMD echo $MYPATH
CMD echo "success--------------ok"
CMD /bin/bash
# build
docker build -t centosjava8:1.5