美文网首页
Dockerfile

Dockerfile

作者: qyfl | 来源:发表于2019-09-26 22:24 被阅读0次

Dockerfile 就是一个文本文件,其中包含了一条条指令,每条指令构建一层。每一条指令的内容,就是描述当前这一层如何构建。

  • FROM 指定基础镜像。
    基础镜像就是以一个镜像为基础,在其上面定制,构建我们自己的镜像。比如 centostomcatmysql等等。

    例如:FROM centos

  • RUN 执行命令

    shell 格式:RUN <命令>
    例如:RUN yum install vim

    exec 格式:RUN ["可执行文件", "参数1", "参数二"]
    例如:RUN [xxx.sh, arg1]

  • COPY 复制文件
    shell 格式:COPY <源路径> <目标路径>
    例如:COPY hom* /mydir/

    exec 格式:COPY ["源路径", "目标路径"]
    例如:COPY ["home.txt", "/mydir/"]

  • ADD 更高级的复制文件
    用法与 COPY 一样,如果复制的文件是压缩包,会默认解压到目标路径。
    源路径可以是 URL,如果是,会自动下载并设置文件权限为 600

    用来将构建环境下的文件和目录复制到镜像中。比如,在安装一个应用程序时。
    ADD 指令需要源文件位置和目的文件位置两个参数

  • CMD 容器启动命令
    也有 shellexec 两种格式。

  • ENTRYPOINT 入口点
    也有 shellexec 两种格式。

  • ENV 设置环境变量
    格式有两种:
    ENV <key><value>
    ENV <key1>=<value1> <key2>=<value2>
    用来在镜像构建过程中设置环境变量

  • ARG 构建参数
    ARG <参数名>[=<默认值>]
    ENV 效果一样,区别是 ARG 构建的环境变量在容器运行时是不会存在这些环境变量的。

  • VOLUME 定义匿名卷
    也有 shellexec 两种格式。
    VOLUME <路径>
    VOLUME ["<路径1>", "<路径2>"]
    用来向基于镜像创建的容器添加卷。一个卷是可以存在于一个或者多个容 器内的特定的目录,这个目录可以绕过联合文件系统,并提供如下共享数据或者对数据进行 持久化的功能。

  • EXPOSE 声明端口
    EXPOSE <端口1> [<端口2>...]
    -p 参数不同,不会进行映射,只是声明打算使用什么端口

  • WORKDIR 制动工作目录
    WORKDIR <工作目录路径>
    用来在从镜像创建一个新容器时,在容器内部设置一个工作目录,ENTRYPOINT 和/或 CMD 指定的程序会在这个目录下执行。

  • USER 指定当前用户
    USER <用户名>
    指定该镜像会以什么样的用户去运行

相关文章

网友评论

      本文标题:Dockerfile

      本文链接:https://www.haomeiwen.com/subject/uhvfuctx.html