【转载】Dockerfile文件详解

什么是dockerfile?

Dockerfile是一个包含用于组合映像的命令的文本文档。能够使用在命令行中调用任何命令。 Docker经过读取Dockerfile中的指令自动生成映像。html

docker build命令用于从Dockerfile构建映像。能够在docker build命令中使用-f标志指定要使用的Dockerfile路径docker

例:网络

docker build -f /root/dockerfiles

Dockerfile的基本结构

Dockerfile 通常分为四部分:基础镜像信息、维护者信息、镜像操做指令和容器启动时执行指令,’#’ 为 Dockerfile 中的注释。app

Dockerfile文件说明

Docker以从上到下的顺序运行Dockerfile的指令。为了指定基本映像,第一条指令必须是FROM。一个声明以字符开头则被视为注释。能够在Docker文件中使用RUNCMDFROMEXPOSEENV等指令。ui

 

在这里列出了一些经常使用的指令^-^spa

  • FROM:指定基础镜像,必须为第一个命令

  • MAINTAINER: 维护者信息
  • RUN:构建镜像时执行的命令
  • ADD:将本地文件添加到容器中,tar类型文件会自动解压(网络压缩资源不会被解压),能够访问网络资源,相似wget
  • COPY:功能相似ADD,可是是不会自动解压文件,也不能访问网络资源
  • CMD:构建容器后调用,也就是在容器启动时才进行调用。
  • ENTRYPOINT:配置容器,使其可执行化。配合CMD可省去"application",只使用参数。
  • LABEL:用于为镜像添加元数据
  • ENV:设置环境变量
  • EXPOSE:指定于外界交互的端口
  • VOLUME:用于指定持久化目录
  • WORKDIR:工做目录,相似于cd命令
  • USER : 指定运行容器时的用户名或 UID,后续的 RUN 也会使用指定用户。使用USER指定用户时,能够使用用户名、UID或GID,或是二者的组合。

        当服务不须要管理员权限时,能够经过该命令指定运行用户。而且能够在以前建立所须要的用户命令行

  • ARG:用于指定传递给构建运行时的变量
  • ONBUILD:用于设置镜像触发器

 

最后用一张图解释经常使用指令的意义^-^code

 

详细原文:http://www.javashuo.com/article/p-xaajfgxj-du.html

相关文章
相关标签/搜索