.dockerignore 速查表 - Docker 构建上下文忽略规则大全

写 Dockerfile 时忘了配 .dockerignore,构建上下文会把 node_modules、.git 全打进去。这里按通配符、目录忽略、与 .gitignore 差异和瘦身技巧分好类,配示例直接复制。

配置格式·共 26 条命令·最后更新 2026-08-02
返回 配置格式

基础语法 Basic Syntax 6

node_modules
忽略名为 node_modules 的文件或目录
*.log
忽略所有 .log 文件
tmp/
只忽略根目录下的 tmp 目录(带斜杠)
**/tmp
忽略任意层级的 tmp 目录
# comment
井号开头为注释行
空行被忽略

通配符 Glob 6

*
匹配任意数量非分隔符字符
?
匹配单个非分隔符字符
**
匹配任意层级目录
[abc]
匹配括号内任一字符
*.tmp
忽略所有 .tmp 文件
dist/*
忽略 dist 下一级所有内容(保留 dist 目录本身)

常见忽略项 Common Ignores 6

.git
不把 git 仓库打进构建上下文
node_modules
依赖目录,通常已在镜像内安装
.env
不要泄漏密钥到构建环境
Dockerfile
忽略自身(极少需要)
*.md
忽略文档类文件
.dockerignore
忽略自身不影响当前构建

与 .gitignore 差异 4

!node_modules/important
用 ! 取反,重新包含被忽略项
Dockerfile 不读 .gitignore
.dockerignore 与 .gitignore 相互独立
构建上下文 = docker build .
docker 先按 .dockerignore 裁剪上下文再发给 daemon
COPY 仍受路径限制
.dockerignore 只影响上下文,不限制 COPY 目标

瘦身技巧 Slimming 4

**/*.pyc
忽略所有编译缓存
.cache/
忽略本地缓存目录
coverage/
忽略测试覆盖率报告
tests/
忽略测试目录减小上下文

💡 提示

  • 不配 .dockerignore 时,docker build . 会把当前目录全部发给 daemon,node_modules 和 .git 会让上下文巨大。
  • 带斜杠的 tmp/ 只匹配根目录 tmp,不带斜杠的 tmp 会匹配任意层级的 tmp。
  • .dockerignore 与 .gitignore 互不影响,不能共用同一份文件。
  • 用 ** 可跨层级匹配目录,如 **/__pycache__ 忽略所有 Python 缓存。

官方参考来源

命令整理自以下官方文档,点击核对最新用法。

由 LaoHand 维护

公开更新于 2026年8月2日,内容持续校对官方文档。

发现错误?反馈给我们

命令或描述有误?提交 issue 帮助我们修正。

发现错误?反馈给我们