maintainer 这个参数已经弃用了 官方推荐 LABEL 作为信息标注
ADD 命令
ADD有2个参数,源和目标。它的基本作用是从源系统的文件系统上复制文件到目标容器的的文件系统。如果源是1个URL,那该URL的内容将被下载并复制到容器中。
如 ADD run.sh /
CMD 命令
和RUN命令相似,CMD可以用于执行特定的命令。和RUN不同的是,这些命令不是在镜像构建的过程中执行的,而是在用镜像启动容器后被调用。
如 CMD "command" "arg1" "arg2"
COPY 命令
用于复制文件到镜像中
COPY <src> <dst>
src 只能是与Dockerfile同级的本地文件
如 COPY run.sh /
ENTRYPOINT 命令
配置一个容器使之可执行化,如果结合CMD命令和ENTRYPOINT命令,可以从CMD命令中移除"application" 而仅仅保留参数,参数将传递给ENTRYPOINT命令
如 ENTRYPOINT ["/run.sh","arg1","arg2"]
ENV 用于设置环境变量 。 这些变量以 "key=value"的形式存在,在Dockerfile中其他命令里可以直接引用,并可以在容器内被脚本或者程序调用
如 ENV version=12345
ENV release 1.0.1
EXPOSE 用来指定容器内端口映射到外部,是容器内的应用可以通过端口和外界交互
如 EXPOSE 8080
FROM 指定基础镜像
如 FROM lentos:7
LABEL 为镜像定义标签信息
如 LABEL job.name="Project1" build.user="admin"
ONBUILD 只针对当前镜像生效
RUN 是Dockerfile执行shell命令的核心部分。接受命令作为参数并用于创建镜像,不像CMD命令。RUN命令用于创建进行过程中 多条命令以&或‘;’ 结合
如 RUN yum update -y && yum install -y vim
STOPSIGNAL 当容器退出时给系统发送什么样的指令
USER 用于设置运行容器的用户与组
如 USER www.www
USER admin
USER 1000
VOLUME 创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放数据库等各种需要持久化的数据
如 VOLUME ["/data"]
WORKDIR 设置CMD指明的命令运行目录
如 WORKDIR /tmp