Skip to content

Commit e386104

Browse files
committed
Add blank lines before lists per CommonMark
1 parent f4fa272 commit e386104

27 files changed

Lines changed: 62 additions & 0 deletions

01_introduction/1.1_quickstart.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ COPY index.html /usr/share/nginx/html/index.html
3636
```bash
3737
$ docker build -t my-hello-world .
3838
```
39+
3940
* `docker build`:构建命令
4041
* `-t my-hello-world`:给镜像起个名字 (标签)
4142
* `.`:指定上下文路径为当前目录
@@ -47,6 +48,7 @@ $ docker build -t my-hello-world .
4748
```bash
4849
$ docker run -d -p 8080:80 my-hello-world
4950
```
51+
5052
* `docker run`:运行命令
5153
* `-d`:后台运行
5254
* `-p 8080:80`:将宿主机的 8080 端口映射到容器的 80 端口

01_introduction/1.2_what.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ flowchart LR
9393
runC --> OCI["OCI<br/>标准化"]
9494
end
9595
```
96+
9697
- **LXC** (2013):Docker 最初基于 Linux Containers
9798
- **libcontainer** (2014,Docker 0.9):Docker 自研的容器运行时
9899
- **runC** (2015,Docker 1.11 整合):捐献给 OCI 的标准容器运行时

02_basic_concept/2.1_image.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ Docker 镜像是一个特殊的文件系统,包含:
4141
| **元数据** | 启动命令、暴露端口、数据卷定义 |
4242

4343
**关键特性**
44+
4445
- ✅ 镜像是 **只读**
4546
- ✅ 镜像 **不包含** 动态数据
4647
- ✅ 镜像构建后 **内容不会改变**

03_install/3.5_raspberry-pi.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,19 @@
77
树莓派是 Docker 在边缘计算的一个优秀用例。但在安装前,笔者建议你了解几个实际情况:
88

99
**性能特性**
10+
1011
- Raspberry Pi 4 及以上才能流畅运行 Docker 和基本容器
1112
- Raspberry Pi Zero 2 可以运行,但性能受限
1213
- 磁盘 I/O 是主要瓶颈(特别是使用 microSD 卡时)
1314

1415
**镜像可用性**
16+
1517
- 并非所有 Docker 镜像都有 ARM 版本(arm64 或 armv7)
1618
- 官方镜像通常提供多架构支持,但第三方镜像可能没有
1719
- 某些依赖 Intel 特定指令的应用无法在 ARM 上运行
1820

1921
**存储和内存**
22+
2023
- 容器镜像会占用较多存储空间,128GB microSD 卡建议最多运行 3-4 个中等大小的容器
2124
- 512MB 或 1GB 内存的树莓派运行多个容器会非常吃力
2225

03_install/3.7_mac.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@
55
macOS 上没有原生 Linux 内核,Docker 需要运行在一个轻量级虚拟机中。Docker Desktop 完全封装了这个复杂性,让 Mac 用户可以像 Linux 用户一样使用 Docker。但有几点需要特别了解:
66

77
**性能特性**
8+
89
- Apple Silicon(M 系列芯片)比 Intel Mac 的性能更好,且拥有原生支持
910
- 文件 I/O 性能:macOS 与容器之间的卷挂载性能不如 Linux(这是虚拟化的代价)
1011
- 内存使用:Docker Desktop 本身会消耗一定内存用于虚拟机管理
1112

1213
**许可考虑**
14+
1315
- 小型企业(少于 250 名员工且年收入低于 1000 万美元)、个人使用、教育和非商业开源项目可免费使用
1416
- 超出上述范围的商业用途需要付费订阅
1517

03_install/3.8_windows.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,14 @@
77
与 macOS 类似,Windows 也没有原生 Linux 容器支持。Docker Desktop for Windows 有两种运行后端可选:
88

99
**WSL 2(Windows Subsystem for Linux 2)** - 推荐:
10+
1011
- 利用 Hyper-V 虚拟化运行真正的 Linux 内核
1112
- 性能更好,文件系统集成更深
1213
- 现代 Windows 10/11 的标准选择
1314
- 支持在 Linux 和 Windows 之间的无缝文件访问
1415

1516
**Hyper-V** - 传统方案:
17+
1618
- 纯虚拟化方式
1719
- 性能略低于 WSL 2
1820
- 在某些企业网络环境下仍被使用

03_install/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@ Docker Engine 主要提供 `stable` 和 `test` 两个更新频道;`test.docker
1111
### 生产环境 vs 开发环境
1212

1313
**生产环境**(服务器部署):
14+
1415
- 优先使用**官方 APT/YUM 源安装**(Ubuntu、Debian、Fedora、CentOS)
1516
- 优势:获得官方安全更新、长期技术支持、版本管理清晰
1617
- 安装步骤稍多一些,但这种“麻烦”是值得的——它为你的生产系统争取了稳定性和可维护性
1718

1819
**开发环境**(本地开发机、测试服务器):
20+
1921
- 使用**脚本自动安装****包管理器直接安装**
2022
- 如果你想快速上手,官方脚本(`get.docker.com`)是最便捷的选择
2123
- 国内用户注意:这一步一定要选对镜像源,否则网络卡顿会严重影响体验

04_image/4.5_build.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ FROM scratch
5959
```docker
6060
RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
6161
```
62+
6263
* *exec* 格式:`RUN ["可执行文件", "参数1", "参数2"]`,这更像是函数调用中的格式。
6364

6465
在会修改文件系统的指令里,`RUN` 是最典型的一类。每一个 `RUN` 的行为,都可以类比为我们刚才手工建立镜像的过程:先基于当前结果启动一个临时构建环境,在其上执行这些命令,再把这一步产生的文件系统变化保存为新的结果层。

04_image/4.7_internal.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ flowchart TD
3838
end
3939
Note["所有的写操作都在容器层这里"] -.-> L4
4040
```
41+
4142
* **读取文件**:当容器需要读取文件时,Docker 会从最上层 (容器层) 开始向下层 (镜像层) 寻找,直到找到该文件为止。
4243
* **修改文件**:当容器需要修改某个文件时,Docker 会从下层镜像中将该文件复制到上层的容器层,然后对副本进行修改。这被称为 **写时复制 (Copy-on-Write,CoW)** 策略。
4344
* **删除文件**:当容器删除某个文件时,Docker 并不是真的去下层删除它 (因为下层是只读的),而是在容器层创建一个特殊的 “白障 (Whiteout)” 文件,用来标记该文件已被删除,从而在容器视图中隐藏它。

06_repository/6.1_dockerhub.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ Docker Hub 对不同类型用户实施拉取速率限制(2025 年 4 月起更
8282
除了上述针对特定账号拉取镜像数量的 Pull Rate Limit 之外,Docker Hub 对所有用户(包含已认证及付费用户)还实施了 **滥用保护限流 (Abuse Rate Limiting)**。它是根据网络出口 IP (IPv4 或 IPv6 /64 子网) 计算整体请求频率,阈值动态触发(通常为每分钟数千级别请求)。
8383

8484
**两类的差异与排查方法**
85+
8586
- **Pull Rate Limit**:针对拉取量达到上限。报错返回 `429 Too Many Requests`,并且 HTTP 返回体/CLI 错误提示中会带有明确的 `toomanyrequests: You have reached your pull rate limit` 提示,常附有账户升级链接。
8687
- **Abuse Rate Limit**:防范接口频率打击。报错仅返回简化的 `429 Too Many Requests`。这一限流不分付费与否,常发生在“多终端共享出口 IP”的企业局域网或者第三方云 CI 服务(如 GitHub Actions 等)中,即使你已正常配置 `docker login` 也依旧可能触发。
8788

0 commit comments

Comments
 (0)