Dockerfile简介
Dockerfile其实就是我们用来构建Docker镜像的源码,当然这不是所谓的编程源码,而是一些命令的组合,只要理解它的逻辑和语法格式,就可以编写Dockerfile了。
简单点说,Dockerfile的作用:它可以让用户个性化定制Docker镜像。因为工作环境中的需求各式各样,网络上的镜像很难满足实际的需求。
Dockerfile常见命令
| 命令 | 作用 |
|---|---|
| FROM image_name:tag | |
| MAINTAINER user_name | 声明镜像作者 |
| ENV key value | 设置环境变量(可以写多条) |
| RUN command | 编译镜像时运行的脚本(可以写多条) |
| CMD | 设置容器的启动命令 |
| ENTRYPOINT | 设置容器的入口程序 |
| ADD source_dir/file dest_dir/file | 将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压 |
| COPY source_dir/file dest_dir/file | 和ADD类似,但是如果有压缩文件不能解压 |
| WORKDIR path_dir | 设置工作目录 |
| ARG | 设置编译镜像时加入的参数 |
| VOLUMN | 设置容器的挂载卷 |
镜像构建示意图:

可以看到,新镜像是从基础镜像一层一层叠加生成的。每安装一个软件,就在现有镜像的基础上增加一层。
- RUN、CMD、ENTRYPOINT的区别?
RUN:用于指定 docker build 过程中要运行的命令,即是创建 Docker 镜像(image)的步骤
CMD:设置容器的启动命令,Dockerfile中只能有一条CMD命令,如果写了多条则最后一条生效,CMD不支持接收 docker run 的参数。
ENTRYPOINT:入口程序是容器启动时执行的程序,docker run 中最后的命令将作为参数传递给入口程序,ENTRYPOINT 类似于 CMD 指令,但可以接收 docker run 的参数。
本文深入解析Dockerfile的使用,介绍其如何通过一系列命令构建个性化Docker镜像,满足多样化的工作环境需求。涵盖FROM、MAINTAINER、ENV、RUN、CMD、ENTRYPOINT等关键命令的解释及区别。
4万+

被折叠的 条评论
为什么被折叠?



