术语图鉴/Docker 与容器/Dockerfile
切换Esc返回

Dockerfile Dockerfile

你可能会说

容器Dockerfile有问题,帮我排查一下。

一个文本文件,用指令告诉 Docker 怎么构建镜像:基于什么系统、装什么依赖、复制什么文件、启动什么命令。

一个文本文件,用指令告诉 Docker 怎么构建镜像:基于什么系统、装什么依赖、复制什么文件、启动什么命令。

生活类比

像菜谱——第一步切菜、第二步热油、第三步下锅……Docker 按步骤执行就能做出「镜像」这道菜。

🎮 动手试试

FROM node:20-alpine
COPY . .
RUN npm install
CMD ["node", "app.js"]
选择题选择一个你认为最合适的答案

关于「Dockerfile」,以下哪个描述最准确?

你可以这样告诉 AI

帮我写一个 Dockerfile,基于 node:20-alpine,安装 pnpm 后复制源码,构建后只保留 dist 到运行镜像

容易混淆?这样区分

Dockerfile Dockerfile
Docker Compose Docker Compose

Dockerfile 定义如何构建单个镜像,用指令描述安装依赖、复制文件等步骤;Docker Compose 定义如何同时运行多个容器。

什么时候用

标准化构建流程

需要把应用构建步骤固化下来,让任何人拿到代码都能一键 build 出相同镜像时,写 Dockerfile 描述构建指令。

和 AI 协作时

想让 AI 帮你生成 Dockerfile 时,直接说「帮我写一个 Dockerfile,基于 node:20-alpine,安装依赖后复制源码并暴露 3000 端口」。

什么时候不用

快速原型验证

还在频繁改代码试方案的阶段,先直接在本地跑通再写 Dockerfile,否则每次改一行就要重新 build。

平台自动处理部署

项目通过 Vercel、Netlify、Railway 等平台部署且平台自动识别和构建,不需要手写 Dockerfile。

组成结构 · Anatomy

1
核心概念Core

一个文本文件,用指令告诉 Docker 怎么构建镜像:基于什么系统、装什么依赖、复制什么文件、启动什

2
实际表现In Practice

像菜谱——第一步切菜、第二步热油、第三步下锅……Docker 按步骤执行就能做出「镜像」这道菜。

3
与 AI 的关联AI Context

项目根目录的 Dockerfile 就是打包说明书。提到「改 Dockerfile」时,就是修改打包

典型使用场景

编写 Dockerfile
告诉 AI「帮我给这个 Go 项目写 Dockerfile,用多阶段构建,编译完只复制二进制到 alpine 运行」
想弄懂概念时
告诉 AI「用大白话给我解释什么是Dockerfile,举个生活中的例子」

延伸阅读