Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion 01_introduction/1.3_why.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## 1.3 为什么要使用 Docker
## 1.3 为什么要用 Docker

在回答 “为什么用 Docker” 之前,笔者想先问一个问题:**你有没有经历过这些场景?**

Expand Down
2 changes: 1 addition & 1 deletion 01_introduction/summary.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## 1.4 本章小结
## 本章小结

- Docker 是一种轻量级虚拟化技术,核心价值是 **环境一致性**
- 与虚拟机相比,Docker 更轻量、更快速、资源利用率更高
Expand Down
2 changes: 1 addition & 1 deletion 02_basic_concept/2.1_image.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## 2.1 Docker 镜像
## 2.1 镜像

Docker 镜像作为容器运行的基石,其设计理念和实现机制至关重要。本节将深入探讨镜像的本质、与操作系统的关系、内容构成以及核心的分层存储机制。

Expand Down
2 changes: 1 addition & 1 deletion 02_basic_concept/2.2_container.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## 2.2 Docker 容器
## 2.2 容器

容器是 Docker 技术的核心,是应用实际运行的载体。本节将从容器的本质、与虚拟机的区别、存储层机制以及生命周期管理等方面,全面解析 Docker 容器。

Expand Down
2 changes: 1 addition & 1 deletion 02_basic_concept/2.3_repository.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## 2.3 Docker Registry
## 2.3 仓库

Docker Registry 是镜像分发和管理的核心组件。本节将介绍 Registry 的基本概念、公共和私有服务的选择,以及镜像的安全管理。

Expand Down
4 changes: 2 additions & 2 deletions 02_basic_concept/summary.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## 2.4 本章小结
## 本章小结

| 概念 | 要点 |
|------|------|
Expand All @@ -13,7 +13,7 @@

- [获取镜像](../04_image/4.1_pull.md):从 Registry 下载镜像
- [使用 Dockerfile 定制镜像](../04_image/4.5_build.md):创建自己的镜像
- [Dockerfile 最佳实践](../appendix/20.1_best_practices.md):构建高质量镜像的技巧
- [Dockerfile 最佳实践](../appendix/best_practices.md):构建高质量镜像的技巧
- [底层实现 - 联合文件系统](../12_implementation/12.4_ufs.md):深入理解分层存储的技术原理

| 概念 | 要点 |
Expand Down
2 changes: 1 addition & 1 deletion 03_install/3.1_ubuntu.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## 3.1 Ubuntu 安装 Docker
## 3.1 Ubuntu

Ubuntu 是 Docker 最常用的运行环境之一。本节将介绍如何在 Ubuntu 系统上安装 Docker,并配置国内镜像加速。

Expand Down
2 changes: 1 addition & 1 deletion 03_install/3.2_debian.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## 3.2 Debian 安装 Docker
## 3.2 Debian

Debian 以其稳定性著称,是 Docker 的理想宿主系统。本节将指导你在 Debian 上完成 Docker 的安装。

Expand Down
2 changes: 1 addition & 1 deletion 03_install/3.3_fedora.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## 3.3 Fedora 安装 Docker
## 3.3 Fedora

Fedora 作为技术前沿的 Linux 发行版,对 Docker 有着良好的支持。本节介绍在 Fedora 上的安装步骤。

Expand Down
2 changes: 1 addition & 1 deletion 03_install/3.4_centos.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## 3.4 CentOS 安装 Docker
## 3.4 CentOS

CentOS (及其替代品 Rocky Linux、AlmaLinux) 是企业级服务器常用的操作系统。本节介绍在这些系统上安装 Docker 的步骤。

Expand Down
2 changes: 1 addition & 1 deletion 03_install/3.5_raspberry-pi.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## 3.5 树莓派卡片电脑安装 Docker
## 3.5 Raspberry Pi

树莓派等 ARM 架构设备在物联网和边缘计算领域应用广泛。本节介绍如何在树莓派上安装 Docker。

Expand Down
3 changes: 3 additions & 0 deletions 03_install/3.7_mac.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@

### 3.7.2 安装

> [!WARNING]
> **商业许可限制**:自 2021 年起,Docker Desktop 对微型企业(少于 250 名员工且年收入少于 1000 万美元)、个人使用、教育和非商业开源项目仍然免费。对于其他商业用途,需要付费订阅。企业用户请注意合规风险,或考虑使用开源替代方案。

Docker Desktop 为 Mac 用户提供了无缝的 Docker 体验。你可以选择使用 Homebrew 或手动下载安装包进行安装。

#### 使用 Homebrew 安装
Expand Down
3 changes: 3 additions & 0 deletions 03_install/3.8_windows.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@

### 3.8.2 安装

> [!WARNING]
> **商业许可限制**:自 2021 年起,Docker Desktop 对微型企业(少于 250 名员工且年收入少于 1000 万美元)、个人使用、教育和非商业开源项目仍然免费。对于其他商业用途,需要付费订阅。企业用户请注意合规风险,或考虑使用开源替代方案。

**手动下载安装**

点击以下[链接](https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe)下载 Docker Desktop for Windows。
Expand Down
2 changes: 1 addition & 1 deletion 03_install/summary.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## 3.11 本章小结
## 本章小结

Docker 支持在多种平台上安装和使用,选择合适的安装方式是顺利使用 Docker 的第一步。

Expand Down
2 changes: 1 addition & 1 deletion 04_image/summary.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## 4.8 本章小结
## 本章小结

| 操作 | 命令 |
|------|------|
Expand Down
2 changes: 1 addition & 1 deletion 05_container/5.1_run.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## 5.1 启动容器
## 5.1 启动

本节将详细介绍 Docker 容器的启动方式,包括新建启动和重新启动已停止的容器。

Expand Down
8 changes: 3 additions & 5 deletions 05_container/5.2_daemon.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## 5.2 后台运行
## 5.2 守护态运行

在生产环境中,我们通常需要容器持续运行,不受终端关闭的影响。本节将深入讲解如何让容器在后台运行,以及理解容器生命周期的核心概念。

Expand Down Expand Up @@ -57,8 +57,6 @@ $ docker run -d ubuntu:24.04

#### 核心原理:容器的生命周期与主进程绑定

如下代码块所示,展示了相关示例:

```mermaid
flowchart TD
subgraph Lifecycle ["Docker 容器的生命周期 = 容器内 PID 1 进程的生命周期"]
Expand Down Expand Up @@ -190,7 +188,7 @@ $ docker logs -t myapp
1. **查看退出状态码**:
```bash
$ docker ps -a --filter "name=mycontainer"
# 查看 STATUS 列,如 "Exited (1)" 表示异常退出
# 查看 STATUS 列,如 Exited (1) 表示异常退出

```

Expand Down Expand Up @@ -231,6 +229,6 @@ $ docker attach mycontainer
### 5.2.7 延伸阅读

- [进入容器](5.4_attach_exec.md):如何进入正在运行的容器执行命令
- [容器日志](../appendix/20.1_best_practices.md):生产环境的日志管理最佳实践
- [容器日志](../appendix/best_practices.md):生产环境的日志管理最佳实践
- [HEALTHCHECK 健康检查](../07_dockerfile/7.12_healthcheck.md):自动检测容器内服务是否正常
- [Docker Compose](../11_compose/README.md):管理多个后台容器的更好方式
2 changes: 1 addition & 1 deletion 05_container/5.3_stop.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## 5.3 终止容器
## 5.3 终止

本节将介绍如何终止一个运行中的容器,以及几种不同的终止方式及其区别。

Expand Down
2 changes: 1 addition & 1 deletion 05_container/5.5_import_export.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## 5.5 导出和导入容器
## 5.5 导出和导入

当我们需要迁移容器或者备份容器时,可以使用 Docker 的导入和导出功能。本节将介绍这两个命令的使用方法。

Expand Down
2 changes: 1 addition & 1 deletion 05_container/5.6_rm.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## 5.6 删除容器
## 5.6 删除

随着容器的创建和停止,系统中会积累大量的容器。本节将介绍如何删除不再需要的容器,以及如何清理所有停止的容器。

Expand Down
2 changes: 1 addition & 1 deletion 05_container/summary.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## 5.7 本章小结
## 本章小结

| 操作 | 命令 | 说明 |
|------|------|------|
Expand Down
2 changes: 1 addition & 1 deletion 06_repository/summary.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## 6.5 本章小结
## 本章小结

| 功能 | 说明 |
|------|------|
Expand Down
22 changes: 0 additions & 22 deletions 07_dockerfile/7.10_workdir.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@

### 7.10.1 基本语法

如下代码块所示,展示了相关示例:

```docker
WORKDIR <工作目录路径>
```
Expand All @@ -14,8 +12,6 @@ WORKDIR <工作目录路径>

### 7.10.2 基本用法

如下代码块所示,展示了相关示例:

```docker
WORKDIR /app

Expand All @@ -30,8 +26,6 @@ COPY . . # 复制到 /app/

#### 常见错误

如下代码块所示,展示了相关示例:

```docker
## ❌ 错误:cd 在下一个 RUN 中无效

Expand All @@ -41,8 +35,6 @@ RUN echo "hello" > world.txt # 文件在根目录!

#### 原因分析

如下代码块所示,展示了相关示例:

```dockerfile
RUN cd /app
Expand All @@ -58,8 +50,6 @@ RUN echo "hello" > world.txt

#### 正确做法

如下代码块所示,展示了相关示例:

```docker
## ✅ 正确:使用 WORKDIR

Expand All @@ -85,8 +75,6 @@ RUN pwd # 输出 /a/b/c

### 7.10.5 使用环境变量

如下代码块所示,展示了相关示例:

```docker
ENV APP_HOME=/app
WORKDIR $APP_HOME
Expand All @@ -98,8 +86,6 @@ RUN pwd # 输出 /app

### 7.10.6 多阶段构建中的 WORKDIR

如下代码块所示,展示了相关示例:

```docker
## 构建阶段

Expand All @@ -123,8 +109,6 @@ COPY --from=builder /build/dist .

#### 1. 尽早设置 WORKDIR

如下代码块所示,展示了相关示例:

```docker
FROM node:20
WORKDIR /app # 尽早设置
Expand All @@ -137,8 +121,6 @@ CMD ["node", "server.js"]

#### 2. 使用绝对路径

如下代码块所示,展示了相关示例:

```docker
## ✅ 推荐:绝对路径,意图明确

Expand All @@ -151,8 +133,6 @@ WORKDIR app

#### 3. 不要用 RUN cd

如下代码块所示,展示了相关示例:

```docker
## ❌ 避免

Expand All @@ -166,8 +146,6 @@ RUN echo "hello" > world.txt

#### 4. 适时重置 WORKDIR

如下代码块所示,展示了相关示例:

```docker
WORKDIR /app
## ... 应用相关操作 ...
Expand Down
10 changes: 0 additions & 10 deletions 07_dockerfile/7.11_user.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@

### 7.11.1 基本语法

如下代码块所示,展示了相关示例:

```docker
USER <用户名>[:<用户组>]
USER <UID>[:<GID>]
Expand Down Expand Up @@ -38,8 +36,6 @@ flowchart LR

#### 创建并切换用户

如下代码块所示,展示了相关示例:

```docker
FROM node:20-alpine

Expand All @@ -64,8 +60,6 @@ CMD ["node", "server.js"]

#### 使用 UID/GID

如下代码块所示,展示了相关示例:

```docker
## 也可以使用数字

Expand Down Expand Up @@ -213,8 +207,6 @@ CMD ["node", "server.js"]

#### 1. 始终使用非 root 用户

如下代码块所示,展示了相关示例:

```docker
## ✅ 推荐

Expand All @@ -241,8 +233,6 @@ USER 1000:1000

#### 3. 多阶段构建中的 USER

如下代码块所示,展示了相关示例:

```docker
## 构建阶段可以用 root

Expand Down
8 changes: 0 additions & 8 deletions 07_dockerfile/7.12_healthcheck.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@

### 7.12.1 基本语法

如下代码块所示,展示了相关示例:

```docker
HEALTHCHECK [选项] CMD <命令>
HEALTHCHECK NONE
Expand Down Expand Up @@ -37,8 +35,6 @@ Starting ──成功──> Healthy ──失败N次──> Unhealthy

#### Web 服务检查

如下代码块所示,展示了相关示例:

```docker
FROM nginx
RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/*
Expand Down Expand Up @@ -93,8 +89,6 @@ HEALTHCHECK CMD wget -q --spider http://localhost/ || exit 1

#### 数据库

如下代码块所示,展示了相关示例:

```docker
## MySQL

Expand All @@ -107,8 +101,6 @@ HEALTHCHECK CMD redis-cli ping || exit 1

#### 自定义脚本

如下代码块所示,展示了相关示例:

```docker
COPY healthcheck.sh /usr/local/bin/
HEALTHCHECK CMD ["healthcheck.sh"]
Expand Down
Loading