mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-08-10 08:27:25 +00:00
更新Docker安装、镜像、Dockerfile和Compose等文档内容
This commit is contained in:
@@ -1,5 +1,16 @@
|
||||
## 7.3 ADD 更高级的复制文件
|
||||
|
||||
### 何时使用 ADD?何时用 COPY?
|
||||
|
||||
在开始前,让我们直言不讳:**在大多数情况下,你应该使用 COPY,而不是 ADD**。
|
||||
|
||||
`ADD` 在 `COPY` 基础上增加了两个额外功能,但这些功能往往引入复杂性而非便利:
|
||||
|
||||
1. 自动解压 tar 压缩包(有时你想复制一个 .tar.gz 本身,而 ADD 会意外地解压它)
|
||||
2. 支持从 URL 下载文件(这个功能由于网络不稳定已被广泛认为是反模式)
|
||||
|
||||
**实践中的建议**:除非你明确需要自动解压功能(比如官方基础镜像构建根文件系统),否则始终使用 COPY。原因很简单——显式优于隐式。你的 Dockerfile 在 6 个月后被接手维护时,清晰的意图会让团队少走很多弯路。
|
||||
|
||||
### 7.3.1 基本语法
|
||||
|
||||
```docker
|
||||
@@ -13,7 +24,7 @@ ADD [选项] ["<源路径>", ... "<目标路径>"]
|
||||
|
||||
---
|
||||
|
||||
### 7.3.2 ADD vs COPY
|
||||
### 7.3.2 ADD vs COPY 详细对比
|
||||
|
||||
| 特性 | COPY | ADD |
|
||||
|------|------|-----|
|
||||
@@ -23,7 +34,7 @@ ADD [选项] ["<源路径>", ... "<目标路径>"]
|
||||
| 行为可预测性 | ✅ 高 | ⚠️ 低 |
|
||||
| 推荐程度 | ✅ **优先使用** | 仅解压场景 |
|
||||
|
||||
> 笔者建议:除非需要自动解压 tar 文件,否则始终使用 COPY。明确的行为比隐式的魔法更好。
|
||||
> **笔者建议**:除非需要自动解压 tar 文件,否则始终使用 COPY。明确的行为比隐式的魔法更好。
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user