# Dockerfile 中的命令


> Dockerfile支持13个命令, 其中一些命令用于构建镜像,

> 另外一些用于从镜像中运行容器,这是一个关于命令什么时候被用到的表格: 


```

BUILD BOTH RUN


FROM WORKDIR CMD

MAINTAINER USER ENV

COPY EXPOSE

ADD VOLUME

RUN ENTRYPOINT

ONBUILD

.dockerignore

```


BUILD 命令:


FROM - 新镜像是基于哪个镜像的

MAINTAINER - 镜像维护者的姓名和邮箱地址

COPY - 拷贝文件和目录到镜像中

ADD - 同COPY一样,但会自动处理URL和解压tarball压缩包

RUN - 在容器中运行一个命令, 比如:apt-get install

ONBUILD - 当构建一个被继承的Dockerfile时运行命令

.dockerignore - 不是一个命令, 但它能控制什么文件被加入到构建的上下文中,

   构建镜像时应该包含.git以及其它的不需要的文件。


RUN 命令:


CMD - 运行容器时的默认命令,可以被命令行参数覆盖

ENV - 设置容器内的环境变量

EXPOSE - 从容器中暴露出端口, 必须显式的通过在主机上的RUN命令带上-p或者-P来暴露端口

VOLUME - 指定一个在文件系统之后的存储目录。如果不是通过docker run -v设置的, 那么将被创建为/var/lib/docker/volumes

ENTRYPOINT - 指定一个命令不会被docker run p_w_picpath cmd命令覆盖。常用于提供一个默认的可执行程序并使用命令作为参数。


BUILD, RUN命令都有的命令:


USER - 为RUN、CMD、ENTRYPOINT命令设置用户

WORKDIR - 为RUN、CMD、ENTRYPOINT、ADD、COPY命令设置工作目录