FROM
基础镜像,当前新镜像是基于那个镜像的,指定一个已存在的镜像作为模版,第一条必须是FROM;
MAINTAINER
镜像维护者的姓名和邮箱地址
RUN
容器构建时需要运行的命令,RUN
是在docker build
是运行
# shell格式 RUN <命令行命令>
# <命令行命令>等同于在终端操作的shell命令
RUN yum -y install vim
# exec格式 RUN ["可执行文件","参数1","参数2"]
RUN ["./test.php","dev","offline"]
# 等价于run ./test.php dev offline
EXPOSE
当前容器对外暴露的端口
WORKDIR
指定在容器创建后,终端默认登录进来的工作目录,一个落脚点
USER
指定该镜像以什么样的用户去执行,如果都不指定,默认是root
ENV
用来在构建镜像过程中设置环境变量
ADD
将宿主机目录下的文件拷贝进镜像且会自动处理URL和解压tar压缩包
COPY
类是ADD,拷贝文件和目录到镜像中。将从构建上下文目录中<源路径>的文件/目录复制到新的一层镜像内的<目标路径>位置
COPY src dest
COPY ["src","dest"]
# <src源路径>:源文件或源目录
# <dest目标路径>:容器内的指定路径,改路径不用事先建好,路径不存在的话会自动创建
VOLUME
容器数据卷,用于数据保存和持久化工作
CMD
指定容器启动后要干的事情。CMD
是在docker run
是运行
Dockerfile中可以有多个CMD指令,但只有最后一个生效,CMD会被docker run之后的参数替换
ENTRYPOINT
也是用来指定一个容器启动时要运行的命令。;类似于CMD指令,但是ENTRYPOINT不会被docker run后面的命令覆盖,而且这些命令行参数会被当做参数送给ENTRYPOINT指令指定的程序
评论 (0)