Dockerfile概念:
Docker 守护进程会解析整个 dockerfile 文件内容,执行一条条的指令,Docker 守护进程会翻
译成真正的 linux 指令
Dockerfile中下面是常用参数:
FROM 镜像名称 MAINTAINER(弃用) 创建人描述 设置镜像的作者信息 LABEL 设置镜像的标签,用法灵活 ARG 设置编译镜像时加入的参数,若想保存为环境变量,就是用ENV,若只想在Dockerfile中临时用一下,就用ARG USER 设置运行RUN CMD ENTRYPOINT的用户名 RUN 容器构建时需要运行的命令 EXPOSE 当前容器对外暴露出的端口 WORKDIR 指定在创建容器后,终端默认登录进来的工作目录,一个落脚点 ENV 构建环境变量 ADD 拷贝文件到容器内,并会自动处理URL网上下载文件和解压tar压缩包 COPY 只能拷贝 VOLUME 容器数据卷 用于数据保存和持久化工作 CMD 指定一个容器启动时要运行的命令,可以指定多个,但只有最后一个生效 ENTRYPOINT 指定一个容器启动时要运行的命令,会追加参数 ONBUILD 当构建一个被继承的dockerfile时运行改命令,父镜像会被子继承后,触发 STOPSIGNAL 设置容器的退出信号量
使用 Dockerfile 构建镜像时最好是将 Dockerfile 放置在一个新建的空目录下。然后将构建镜像所需要的文件添加到该目录中。为了提高构建镜像的效率,你可以在目录下新建一个.dockerignore 文件来指定要忽略的文件和目录。.dockerignore 文件的排除模式语法和 Git 的.gitignore 文件相似。
Build 一个镜像时使用,可以从 Dockerfile 所在的目录(如一些 jar 包)复制到镜像中云,COPY与 ADD 都可以实现,只是 ADD 功能更强大,可以从网络上下载文件,如果设置了 WORKDIR,则 RUN、CMD、COPY、ADD 会把文件复制到该目录下,但当没有指定呢?文件复制到哪了?这里要看当前工作目录,即 WORKDIR 指令指定目录,还有-v 命令指定的目录,如果都没有指定则是根目录,即“/”。