对于我仅仅是简单的封装小的流程脚本。特作以下记录
常用
* FROM img 基于某个镜像
* ENV key value
* 配置的变量可以供其他命令使用 , 并且再容器环境存在
* 如果只需要提供给其他命令使用,不需要存在于容器环境,那么使用ARG 命令
* COPY local in_image 复制本地文件(本目录以及子目录) --> 到镜像
* ADD local.tar.gz in_image 会自动解压
* COPY 命令可以从其他镜像复制文件到本镜像
* RUN 运行命令
* CMD 每次run 这个镜像就会自动运行的命令
* CMD 只存在一个,后面的覆盖前面的
* 如果自动运行的命令需要接受参数,用 ENTRYPOINT 更好,这样docker run的后跟着的参数直接传递给ENTRYPOINT
* WORKDIR 指定工作目录
* 特别注意, RUN cd aa + RUN xxx 的时候,第二个RUN xxx 并不是在aa目录
* USER 指定当前用户
不常用
* ONBUILD 为他人做嫁衣裳
* 核心是,自己只是指定了如何构建,但是并不真正构建。
* 这样其他人基于这个构建的时候,永远是使用最新的数据,而不是陈旧的镜像
* VOLUME 定义匿名卷
* EXPOSE 声明端口