1.dockerfile指令格式

  1. # Comment注释
  2. INSTRUCTION argument指令名 + 参数

2.普通指令

1. FROM

已存在的镜像,基础镜像,第一条非注释指令

FROM <image>

FROM <image>:<tag>

2. MAINTAINER

镜像作者信息、联系信息
与dockercommit -a类似

MAINTAINER <name>

3. RUN

指定当前镜像中运行的命令

每一个RUN指令都毁在当层镜像的上层创建一个新的镜像

RUN <command> shell模式

默认/bin/sh -c command

RUN ["executable","param1","param2"] exec模式

指定其他shell:
RUN["/bin/bash","-c","echo hello"]

docker 构建过程:
docker build -t="NAME" -t 指定镜像名

4. EXPOSE

指定运行该容器使用的端口

EXPOSE <port>[<port>...]

出于安全考虑,使用中仍需用 -p <port>命令指定

3. CMD ENTERYPOINT 容器运行时运行的命令

1. CMD

CMD ["executable","param1","param2"] exec模式

CMD <command> shell模式

与RUN区别:RUN是在容器构建是运行,CMD是在容器运行时运行。在docker run中指定命令,会覆盖CMD命令,即CMD是默认命令。

CMD ["param1","param2"] 做为ENTRYPOINT指令的默认参数

2. ENTERYPOINT

CMD ["executable","param1","param2"] exec模式

CMD <command> shell模式

与CMD区别:不会被docker run 中运行的命令覆盖。可以使用docker run --entrypoint覆盖。entrypoint可与cmd组合:entrypoint指定命令,cmd指定参数。

4. ADD COPY VOLUME 设置镜像目录及文件

1. ADD

包含类似tar的解压功能,安装tar有所帮助

ADD <src>...<dest>
ADD ["<src>"..."<dest>"]适用于文件路径有空格的情况

2. COPY

使用于纯粹复制文件

COPY <src>...<dest>
COPY ["<src>"..."<dest>"]适用于文件路径有空格的情况

3. VOLUME

VOLUME["/data"]

用于创建的容器添加卷,一个卷可以存在一个或多个容器的特定目录,这个目录可以跨过联合文件系统,并提供如共享数据,对数据持久化功能。

5. WORKDIR ENV USER镜像在构建及容器运行时的环境设置

1. WORKDIR

在容器内部设置工作目录

WORKDIR /path/to/workdir

cmd、entrypoint命令都会在这个目录下执行。
一般使用绝对路径,如果用相对路径会一直传递下去。

2. ENV

设置环境变量,在构建过程中和运行中均有效

ENV <key> <value>
ENV <key>=<value>

3. USER

容器以什么用户运行,不指定默认为root
USER daemon
USER uid:gid
USER user:group

6. ONBULID 类似触发器的指令

ONBULID [INSTRUCTION]
为镜像添加触发器,当一个镜像被用作其他镜像的基础镜像时,触发器被执行,当子镜像被构建时,会插入触发器的指令。ONBUILD指令不会在自己构建时运行。

7.构建镜像

默认会使用构建缓存,但是类似于 apt-get update不希望使用缓存,需要加上--no-cache或是在Dockerfile中修改ENV REFRESH_DATE 日期,便会使缓存刷新。

查看构建过程:docker history [image]

在安装nginx的容器中以后台程序运行NGINX:

docker run -d --name nginx -p 80 unbuntufornginx nginx -g "daemon off;"

Docker DockerFile文件指令 & 构建的更多相关文章

  1. [Linux] 编写Dockerfile文件自动构建镜像

    Dockerfile是一个文本文件,按顺序包含构建给定镜像所需的所有命令Docker通过读取Dockerfile中的指令自动构建图像 . Dockerfile遵循特定的格式和指令集,您可以在Docke ...

  2. Docker | dockerfile 文件编写

    dockerfile 的作用 dockerfile 作用就是制作镜像,保持开发,测试,生产环境的一致性. 直接将容器制作为镜像 制作新的镜像 # 把容器按照自己的需求个性完之后,就可以创建自己的镜像的 ...

  3. docker Dockerfile文件的编写部分命令

    镜像的构建过程:编写dockerfile文件,执行docker build 进行构建镜像,最后docker run 运行容器镜像实例. docker build -t mycentos:1.01 . ...

  4. 从零开始构建一个centos+jdk7+tomcat7的docker镜像文件

    从零开始构建一个centos+jdk7+tomcat7的镜像文件 centos7系统下docker运行环境的搭建 准备centos基础镜像 docker pull centos 或者直接下载我准备好的 ...

  5. Docker教程:镜像构建和自动镜像构建dockerfile

    http://blog.csdn.net/pipisorry/article/details/50805379 Docker透过Dockerfile来记录建立Container映象文件的每一个步骤,可 ...

  6. Docker Dockerfile指令

    Docker 可以通过 Dockerfile 的内容来自动构建镜像.Dockerfile 是一个包含创建镜像所有命令的文本文件,通过docker build命令可以根据 Dockerfile 的内容构 ...

  7. docker Dockerfile指令ADD和COPY的区别,添加目录方法

    docker Dockerfile指令ADD和COPY的区别,添加目录方法 ADD指令的功能是将主机构建环境(上下文)目录中的文件和目录.以及一个URL标记的文件 拷贝到镜像中.其格式是: ADD 源 ...

  8. Docker(十)-Docker创建DockerFile文件

    制作Docker image 有两种方式: 使用 Docker container,直接构建容器,再导出成 image 使用. 是使用 Dockerfile,将所有动作写在文件中,再 build 成 ...

  9. 使用Dockerfile文件构建基于centOS系统的tomcat镜像

    以下是Dockerfile的内容: #基础镜像 FROM centos #维护人员信息 MAINTAINER weigs "weigs1231@gmail.com" #设置工作目录 ...

随机推荐

  1. Glassfish DeploymentException: Error in linking security policy for

    http://stackoverflow.com/questions/7322476/glassfish-deploymentexception-error-in-linking-security-p ...

  2. CC10:访问单个节点的删除

    题目 实现一个算法,删除单向链表中间的某个结点,假定你只能访问该结点. 给定待删除的节点,请执行删除操作,若该节点为尾节点,返回false,否则返回true 解法 这道题并不难,主要是题目中这句话确定 ...

  3. js 阻止元素发生默认的行为ie兼容

    //亲测ie9可以兼容 function Go(event) { var e = event; if (e && e.preventDefault) { e.preventDefaul ...

  4. python进阶11 正则表达式

    python进阶11 正则表达式 一.概念 #正则表达式主要解决什么问题? #1.判断一个字符串是否匹配给定的格式,判断用户提交的又想的格式是否正确 #2.从一个字符串中按指定格式提取信息,抓取页面中 ...

  5. CodeForces - 608A-Saitama Destroys Hotel(模拟)

    Saitama accidentally destroyed a hotel again. To repay the hotel company, Genos has volunteered to o ...

  6. java.sql.SQLException: No suitable driver found for jdbc:hive://localhost:10000/default

    error: java.sql.SQLException: No suitable driver found for jdbc:hive://localhost:10000/default at ja ...

  7. AD17笔记

    1 铺铜修改后自动重铺设置:在最右下角

  8. ruby 正则表达式 匹配所有符合规则的信息

    假设一个字符串当中有很多符合规则的信息,下面的例子可以把所有匹配到的结果打印出来: message="afhadhffkdf414j9tr3j43i3433094jwoert223jwew1 ...

  9. java的三大特性之一继承概述

    0.继承-----注意事项 00.子类最多只能继承一个父类(指直接继承) 01.java所有的类都是Object的子类 02.JPK6.0中有202个包3777个类,接口,异常,枚举,注释和错误 03 ...

  10. Google Chrome 浏览器的备用(离线)安装程序

    Google Chrome 浏览器的备用(离线)安装程序(适用于 Windows) 如果您在使用 http://www.google.com/chrome 上的标准安装程序下载 Chrome 浏览器时 ...