DockerFile常用关键字指令
常用关键字指令
关键字(必须大写) | 描述 |
---|---|
FROM | 指定一个已经存在的镜像作为模板,第一条必须是FROM |
MAINTAINER | 镜像维护者姓名和邮箱 |
RUN | 容器构建时需要运行的命令; shell格式:RUN <命令行命令>比如RUN yum install -y vim; exec格式:RUN [“可执行文件”,“参数1”,“参数2”]比如RUN [“./test.php”,“dev”,“offline”]等价于RUN ./test.php dev offline RUN是在docker build时运行 |
EXPOSE | 当前容器对外暴露的端口 |
WORKDIR | 指定在创建容器后,终端默认登录进来的工作目录,一个落脚点 |
USER | 指定该镜像以什么样的用户去执行,如果不指定默认root |
ENV | 在构建镜像过程中设置环境变量,这个环境变量可以在后续的任何RUN中使用 举例:ENV MY_PATH /usr/test;WORKDIR $MY_PATH |
ADD | 将宿主机目录下的文件拷贝进镜像且会自动处理URL和解压tar压缩包 |
COPY | 类似ADD,拷贝文件和目录到镜像中 |
VOLUME | 容器数据卷,用于数据保存和持久化工作 |
CMD | 指定容器启动后要干的事情 Dockerfile中可以有多个CMD指令,但只有最后一个生效,CMD会被docker run之后的参数替换 和RUN命令的区别:CMD在docker run时运行;RUN在docker build运行 |
ENTRYPOINT | 也是用来指定一个容器启动时要运行的命令 类似于CMD命令,但是ENTRYPOINT不会被docker run后的的命令覆盖 有多个ENTRYPOINT时仅最后一个生效 ENTRYPOINT和CMD一起用时,CMD相当于传参给ENTRYPOINT了就会变成 <ENTRYPOINT> "<CMD>" |