CODE/2022-09-30

dockerfile 制作 docker 镜像

Docker 中有个非常重要的概念叫做——镜像(Image)。Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。
镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,那么之前提及的无法重复的问题、镜像构建透明性的问题、体积的问题就都会解决。这个脚本就是 Dockerfile。
Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。
dockerfile 的优点:
相对于手动制作的 docker 镜像,使用 dockerfile 构建的镜像有以下优点:
1:dockerfile 只有几 kb,便于传输
2:使用 dockerfile 构建出来的镜像,在运行容器的时候,不用指定容器的初始命令
3:支持更多的自定义操作
Dockerfile 一般分为四部分:基础镜像信息、维护者信息(可以没有)、镜像操作指令和容器启动时执行指令,’#’ 为 Dockerfile 中的注释。
要使用多个 Dockerfile 创建镜像,可以在不同目录编写 Dockerfile,然后在 Dockerfile 所在的目录下构建新的镜像。
注意:Dockerfile 中所包含的需要的内容;如 COPY 的文件、目录等,都需要在 Dockerfile 同级目录下存在。
dockerfile 的指令说明:
notion image

1、FROM 指令

plain text_snippet
Plain Text · 13 lines|
• FROM 指令必须是 Dockerfile 中非注释行的第一个指令,即一个 Dockerfile 从FROM语句;
• FROM 指令用于为镜像文件构建过程指定基础镜像,后续的指令运行于此基础镜像所提供的运行环境;
• 实践中,基准镜像可以是任何可用镜像文件,默认情况下,docker build会在docker主机上查找指定的镜像文件,在其不存在时,则会自动从 Docker 的公共库 pull 镜像下来。如果找不到指定的镜像文件,docker build 会返回一个错误信息;
• FROM可以在一个 Dockerfile 中出现多次,如果有需求在一个 Dockerfile 中创建多个镜像。
• 如果FROM语句没有指定镜像标签,则默认使用latest标签。
指令格式:
FROM <repository>[:<tag>] 或
FROM <repository>@<digest>
注:
• <repository>:指定作为base image的名称;
• <tag>:base image的标签,省略时默认latest;
• <digest>:是镜像的哈希码;使用哈希码会更安全一点;
案例:
plain text_snippet
Plain Text · 3 lines|
# Description: centos nginx image
FROM centos:7
#来自centos版本为7的基础镜像

2、MAINTAINER 指令(可以省略)

plain text_snippet
Plain Text · 5 lines|
用于让dockerfile制作者提供本人的详细信息
• dockerfile 并不限制MAINTAINER 指令可在出现的位置,但推荐将其放置于FROM指令之后
指令格式:
MAINTAINER <authtor's detail>
案例:
plain text_snippet
Plain Text · 4 lines|
# Description: test image
FROM centos:7
MAINTAINER "kingseal <[email protected]>"
#镜像维护者的信息

3、COPY 指令

案例:
COMPANION ESSAYS / 思想脉络与互照篇目
同卷深读2026-05-22 ·

python3安装在centos详细教程

同属「系统工程卷」脉络衍生思考与工程推演推演阅读 →
跨界互照2026-08-22 ·

我的书架:03|金融经管:经济运行、金融体系与企业治理

我的书架:03|金融经管:经济运行、金融体系与企业治理

跨领域对照思辨 · 从「思想随笔」视界互为印证推演阅读 →
RELATED INDEX / 相关阅读索引
柯航hang.ke·© 2014—2026
CC BY-NC 4.0·