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

写 Dockerfile 时若漏配 .dockerignore,docker build . 会把 node_modules、.git 整个打包进构建上下文,拖慢构建还虚增镜像体积。这份速查覆盖 5 组:基础语法、通配符、常见忽略项、与 .gitignore 的差异,以及瘦身技巧。写出模板后用 docker build 验证上下文大小,误删文件时记住 ! 取反只会对已被忽略的项生效。读完后你能为项目配一份安全且精简的 .dockerignore。

配置格式·共 25 条命令·最后更新 2026-08-02
.dockerignoredocker构建上下文config忽略

基础语法 Basic Syntax 5

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 缓存。

官方参考来源

下方为命令对应的官方权威文档,供你核对最新用法与深入查阅。

由 巧匠 维护

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

联系我们

命令或描述有误?提交反馈、商务合作或产品建议都可发送邮件给我们。

联系我们