Dockerfile 简介

  1. 常用保留字
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 指令指定的程序
  1. 编写 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
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。