diff --git a/03_install/3.1_ubuntu.md b/03_install/3.1_ubuntu.md index f43dab6..fd766f2 100644 --- a/03_install/3.1_ubuntu.md +++ b/03_install/3.1_ubuntu.md @@ -8,7 +8,7 @@ Ubuntu 是 Docker 最常用的运行环境之一。本节将介绍如何在 Ubun - **版本管理**:通过 APT 源安装的 Docker,后续可以像管理其他系统软件包一样进行更新和版本管理 - **安全补丁**:Ubuntu 官方仓库会及时推送 Docker 的安全更新,这在生产环境中至关重要 -- **一致性**:同一 Ubuntu 版本上的团队成员安装的 Docker 版本完全一致,避免了"在我的机器上可以运行"的问题 +- **一致性**:同一 Ubuntu 版本上的团队成员安装的 Docker 版本完全一致,避免了“在我的机器上可以运行”的问题 - **卸载干净**:APT 包管理系统会负责清理所有相关文件,脚本安装的清理往往不够彻底 如果你只是想快速尝试 Docker,脚本安装没有问题;但一旦涉及持久运维,APT 源是更成熟的选择。 diff --git a/03_install/README.md b/03_install/README.md index ac5b8d9..78317ef 100644 --- a/03_install/README.md +++ b/03_install/README.md @@ -13,7 +13,7 @@ Docker 分为 `stable` `test` 和 `nightly` 三个更新频道。 **生产环境**(服务器部署): - 优先使用**官方 APT/YUM 源安装**(Ubuntu、Debian、Fedora、CentOS) - 优势:获得官方安全更新、长期技术支持、版本管理清晰 -- 安装步骤稍多一些,但这种"麻烦"是值得的——它为你的生产系统争取了稳定性和可维护性 +- 安装步骤稍多一些,但这种“麻烦”是值得的——它为你的生产系统争取了稳定性和可维护性 **开发环境**(本地开发机、测试服务器): - 使用**脚本自动安装**或**包管理器直接安装** diff --git a/07_dockerfile/7.5_entrypoint.md b/07_dockerfile/7.5_entrypoint.md index 847eea0..43fbe3e 100644 --- a/07_dockerfile/7.5_entrypoint.md +++ b/07_dockerfile/7.5_entrypoint.md @@ -1,8 +1,8 @@ ## 7.5 ENTRYPOINT 入口点 -### 何时使用 ENTRYPOINT:从"容器"到"命令" +### 何时使用 ENTRYPOINT:从“容器”到“命令” -如果说 CMD 是"容器中的默认程序",那么 ENTRYPOINT 就是"把容器变成一个命令"。这个思维转变决定了你何时使用 ENTRYPOINT。 +如果说 CMD 是“容器中的默认程序”,那么 ENTRYPOINT 就是“把容器变成一个命令”。这个思维转变决定了你何时使用 ENTRYPOINT。 **使用 ENTRYPOINT 的典型场景**: @@ -26,7 +26,7 @@ # docker run myimage --port 9000 → python app.py --port 9000 ``` -**对比 CMD**:如果没有这些"把容器当命令用"的需求,通常使用 CMD 就足够了。 +**对比 CMD**:如果没有这些“把容器当命令用”的需求,通常使用 CMD 就足够了。 ### 7.5.1 什么是 ENTRYPOINT diff --git a/07_dockerfile/README.md b/07_dockerfile/README.md index 7e1c169..ba9db62 100644 --- a/07_dockerfile/README.md +++ b/07_dockerfile/README.md @@ -15,15 +15,15 @@ Dockerfile 是一个文本文件,其内包含了一条条的 **指令 (Instruc ## Dockerfile 编写哲学 -在深入每个指令的细节之前,笔者想强调一个至关重要的原则:**Dockerfile 不是脚本,而是镜像的"设计图"**。这个区别决定了你如何思考每条指令的作用。 +在深入每个指令的细节之前,笔者想强调一个至关重要的原则:**Dockerfile 不是脚本,而是镜像的“设计图”**。这个区别决定了你如何思考每条指令的作用。 -相比编写 Bash 脚本的思维("按顺序执行这些命令"),Dockerfile 的思维应该是("这一层镜像应该如何构建,下一层如何分层")。这个思维转变会影响你的决策: +相比编写 Bash 脚本的思维(“按顺序执行这些命令”),Dockerfile 的思维应该是(“这一层镜像应该如何构建,下一层如何分层”)。这个思维转变会影响你的决策: -- **合并命令**:一个 `RUN apt-get update && apt-get install ...` 应该写在一起,而不是分开成多个 `RUN` 指令,因为它们是同一个"层"的逻辑 +- **合并命令**:一个 `RUN apt-get update && apt-get install ...` 应该写在一起,而不是分开成多个 `RUN` 指令,因为它们是同一个“层”的逻辑 - **选择合适的指令**:`COPY` vs `ADD`、`CMD` vs `ENTRYPOINT` 这些选择不是随意的,而是根据镜像分层的语义来决定的 -- **优化镜像大小**:最后才清理缓存、删除临时文件,让这些"瘦身"操作在同一层完成 +- **优化镜像大小**:最后才清理缓存、删除临时文件,让这些“瘦身”操作在同一层完成 -这个章节将详细介绍各个指令。在学习指令语法时,请始终思考:"这个指令为什么要以这样的方式工作?如果我是 Docker,我应该如何设计它?" +这个章节将详细介绍各个指令。在学习指令语法时,请始终思考:“这个指令为什么要以这样的方式工作?如果我是 Docker,我应该如何设计它?” ## Dockerfile 基本结构