Dockerfile常用指令

FORM

指定base镜像

MAINTAINER

设置镜像的作者,可以是任意字符串。

COPY

将文件从 build context 复制到镜像。
COPY 支持两种形式:

COPY src dest

COPY ["src", "dest"]

注意:src 只能指定 build context 中的文件或目录。

ADD

和copy类似,从build context复制文件到镜像。不同的是,如果src是归档文件(tar,zip,tgz等),文件会自动解压到 dest。
ENV
设置环境变量,环境变量可被后面的指令使用。例如

ENV  __VERSION 1.3
RUN apt-get install -y package=$__VERSION

EXPOSE

指定容器中的进程会监听某个端口,Docker可以将该端口暴露出来。

VOLUME

将文件或目录声明为volume

WORKDIR

为后面的RUN,CMD,ENTRYPOINT,ADD或COPY指令设置镜像中的当前工作目录。

RUN

在容器中运行指定的命令。

CMD

在容器启动时运行的命令
DOCKERFILE中可以有多个CMD指令,但只有最后一个生效,CMD可以被docker run 之后的参数代替。

ENTRYPOINT

设置容器启动时运行的命令。
Dockerfile 中可以有多个 ENTRYPOINT 指令,但只有最后一个生效。CMD 或 docker run 之后的参数会被当做参数传递给 ENTRYPOINT。

USER

指定当前用户
USER 指令和 WORKDIR 相似,都是改变环境状态并影响以后的层。WORKDIR 是改变工作目录,USER 则是改变之后层的执行 RUN, CMD 以及 ENTRYPOINT 这类命令的身份。

当然,和 WORKDIR 一样,USER 只是帮助你切换到指定用户而已,这个用户必须是事先建立好的,否则无法切换。

RUN groupadd -r redis && useradd -r -g redis redis
USER redis
RUN [ "redis-server" ]

HEALTHCHECK

健康检查

RUN,CMD,ENTRYPOINT区别

RUN 执行命令并创建新的镜像层,RUN 经常用于安装软件包。
CMD 设置容器启动后默认执行的命令及其参数,但 CMD 能够被 docker run 后面跟的命令行参数替换。
ENTRYPOINT 配置容器启动时运行的命令。

你可能感兴趣的:(Dockerfile常用指令)