
Dockerfile的介绍与使用
发布日期:2021-05-15 07:34:45
浏览次数:26
分类:精选文章
本文共 2060 字,大约阅读时间需要 6 分钟。
Dockerfile 是构建 Docker 镜像的核心文件,基于一系列指令定义了镜像的结构和执行流程。以下是 Dockerfile 的详细介绍与使用方法。
Dockerfile 格式
Dockerfile 由一系列从上至下的指令构成,每个指令后跟必要的参数。文件格式如下:
# parser directives or commentsFROM <镜像名>[:/<标签>][ARG <变量名>[=<默认值>]][WORKDIR <工作目录>]COPY [--chown=用户:组] <源路径>... <目标路径>RUN <shell命令> 或 ["可执行文件", "参数1", "参数2"] (exec 格式)CMD <shell命令> 或 ["可执行文件", "参数1", "参数2"] (exec 格式)[EXPOSE <端口>[/协议>]][ENTRYPOINT ["可执行文件", "参数1", "参数2"] 或 <shell命令>][ENV <键>=<值>]...
Dockerfile 指令
以下是 Dockerfile 中常用的重要指令及其作用:
FROM
用于指定镜像的基础镜像。格式为:
FROM [--platform= <平台> ] <镜像名>[:<标签>] [AS <镜像别名>] 平台>
- 平台选项可为linux/amd64、linux/arm64、windows/amd64。
- 提供了多个镜像创建选项,可用于链式构建或创建依赖镜像。
RUN
运行构建镜像时的shell命令或exec格式命令。格式为:
RUN <shell命令> 或 ["可执行文件", "参数1", "参数2"] (exec 格式)
- 支持新线式命令或传递参数的exec格式。
- 支持逐行命令,使用斜杠扩展。
CMD
指定镜像运行时的默认命令。格式为:
CMD <shell命令> 或 ["可执行文件", "参数1", "参数2"] (exec 格式)
- dockerfile 只能有一个CMD指令,且只能是最后一个。
- 支持与ENTRYPOINT配合,为默认命令提供参数。
LABEL
添加镜像元数据,格式为:
LABEL <键>=<值> [<键>=<值> ...]
- 支持多个键值对。
- 值中支持跨行,使用双引号或斜杠标记。
EXPOSE
声明镜像中的服务端口,格式为:
EXPOSE <端口>[/协议>]
- 管理端口,需手动发布使用-docker run -p或-P选项。
ENV
设置镜像环境变量,格式为:
ENV <键>=<值>
- 环境变量会随镜像运行封存到容器中。
- 值中支持空格或转义字符。
COPY
从源路径拷贝文件或目录到镜像文件系统,格式为:
COPY [--chown=用户:组] <源路径>... <目标路径> 或 ["源路径", ..., "目标路径"]
- 支持通配符和路径转义。
- 源路径必须在构建上下文中,文件URL下载需目标路径以"/"结尾。
ENTRYPOINT
定义镜像运行时的执行命令,格式为:
ENTRYPOINT ["可执行文件", "参数1", "参数2"] 或 <shell命令>
- 支持exec和shell格式。
- 参数可被docker run override(--override-file)覆盖。
USER
指定运行命令的用户或组,格式为:
USER <用户>[:<组>] 或 USER UID:GID
- 设置为镜像运行时使用的有效用户。
WORKDIR
为命令设置工作目录,格式为:
WORKDIR <工作目录>
- 工作目录可用于COPY、ADD、RUN等指令。
ARG
定义构建镜像时可用的变量,格式为:
ARG <变量名>[=<默认值>]
- 变量只用于镜像构建,在最终镜像中不存在。
- ENV变量可覆盖ARG变量。
ONBUILD
在镜像被用于构建其他镜像时执行触发指令,格式为:
ONBUILD <触发命令>
-触发指令,在目标镜像的FROM后立即执行。
STOPSIGNAL
定义容器退出信号,格式为:
STOPSIGNAL signal_number(如9)
HEALTHCHECK
定义容器健康检查规则,格式为:
HEALTHCHECK --interval=seconds [--timeout=seconds] [--start-period=seconds] [--retries=count] ["CMD-SHELL", "命令"], ["退出状态码"]
SHELL
设置镜像的shell解释器,默认为Linux的/bin/sh和Windows的cmd。
镜像构建
使用docker build命令构建镜像,格式为:
docker build [OPTIONS] PATH | URL | _
常用选项:
- -f:指定dockerfile路径。
- -t:标记镜像名称和标签。
通过合理设计Dockerfile,可以自动化构建符合需求的镜像,并通过ARG、ENV参数支持镜像配置的灵活性。
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2025年05月04日 17时03分49秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
selenium+python之切换窗口
2019-03-07
重载和重写的区别:
2019-03-07
搭建Vue项目步骤
2019-03-07
账号转账演示事务
2019-03-07
idea创建工程时错误提醒的是architectCatalog=internal
2019-03-07
SpringBoot找不到@EnableRety注解
2019-03-07
简易计算器案例
2019-03-07
在Vue中使用样式——使用内联样式
2019-03-07
Explore Optimization
2019-03-07
2020Java程序设计基础(华东交通大学)章节测试免费满分答案
2019-03-07
解决数据库报ORA-02289:序列不存在错误
2019-03-07
map[]和map.at()取值之间的区别
2019-03-08
成功解决升级virtualenv报错问题
2019-03-08
【SQLI-Lab】靶场搭建
2019-03-08
【Bootstrap5】精细学习记录
2019-03-08
Struts2-从值栈获取list集合数据(三种方式)
2019-03-08
vscode中快速生成vue模板
2019-03-08
参考图像
2019-03-09