mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-02 05:39:51 +00:00
2.2 KiB
2.2 KiB
第七章 Dockerfile 指令详解
什么是 Dockerfile
Dockerfile 是一个文本文件,其內包含了一条条的 指令(Instruction),每一条指令构建一层,therefore 每一条指令的内容,就是描述该层应当如何构建。
在 第四章 中,我们通过 docker commit 学习了镜像的构成。但是,手动 commit 只能作为临时修补,并不适合作为生产环境镜像的构建方式。
使用 Dockerfile 构建镜像有以下优势:
- 自动化:可以通过
docker build命令自动构建镜像。 - 可重复性:由于 Dockerfile 是文本文件,可以确保每次构建的结果一致。
- 版本控制:Dockerfile 可以纳入版本控制系统(如 Git),便于追踪变更。
- 透明性:任何人都可以通过阅读 Dockerfile 了解镜像的构建过程。
Dockerfile 基本结构
Dockerfile 一般分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。
指令详解
本章将详细讲解 Dockerfile 中的各个指令:
- COPY 复制文件
- ADD 更高级的复制文件
- CMD 容器启动命令
- ENTRYPOINT 入口点
- ENV 设置环境变量
- ARG 构建参数
- VOLUME 定义匿名卷
- EXPOSE 暴露端口
- WORKDIR 指定工作目录
- USER 指定当前用户
- HEALTHCHECK 健康检查
- ONBUILD 为他人作嫁衣裳
- LABEL 为镜像添加元数据
- SHELL 指令
- RUN 执行命令
此外,我们还将介绍 Dockerfile 的最佳实践和常见问题。
使用 Dockerfile 构建镜像
构建镜像的基本命令格式为:
docker build [选项] <上下文路径/URL/->
例如,在 Dockerfile 所在目录执行:
docker build -t my-image:v1 .
更多关于 docker build 的用法,我们在实战中会结合具体指令进行演示。