Fix heading hierarchy

This commit is contained in:
baohua
2026-03-05 19:24:01 -08:00
parent 916092e4ce
commit 6483d4472c
14 changed files with 231 additions and 61 deletions
+5 -5
View File
@@ -2,7 +2,7 @@
在生产环境中,推荐使用用户自定义网络代替默认的 bridge 网络。自定义网络提供了更好的隔离性和服务发现能力。
### 9.4.1 为什么要用自定义网络
### 9.3.1 为什么要用自定义网络
默认 bridge 网络存在以下局限,而自定义网络可以很好地解决这些问题:
@@ -12,7 +12,7 @@
| 所有容器在同一网络 | 更好的隔离性 |
| 需要 --link (已废弃)| 原生支持服务发现 |
### 9.4.2 创建自定义网络
### 9.3.2 创建自定义网络
使用 `docker network create` 命令可以创建自定义网络:
@@ -26,7 +26,7 @@ $ docker network create mynet
$ docker network inspect mynet
```
### 9.4.3 使用自定义网络
### 9.3.3 使用自定义网络
启动容器时通过 `--network` 参数指定连接的网络:
@@ -43,7 +43,7 @@ PING db (172.18.0.3): 56 data bytes
64 bytes from 172.18.0.3: seq=0 ttl=64 time=0.083 ms
```
### 9.4.4 容器名 DNS 解析
### 9.3.4 容器名 DNS 解析
自定义网络自动提供 DNS 服务。Docker 守护进程在 `127.0.0.11` 运行了一个嵌入式 DNS 服务器,容器内的 DNS 请求会被转发到这里:
@@ -58,7 +58,7 @@ flowchart LR
end
```
### 9.4.5 常用网络命令
### 9.3.5 常用网络命令
以下是 Docker 网络管理中常用的命令:
+3 -3
View File
@@ -2,7 +2,7 @@
容器之间的网络通信是 Docker 网络的核心功能之一。本节介绍容器互联的几种方式。
### 9.5.1 同一网络内的容器
### 9.4.1 同一网络内的容器
同一自定义网络内的容器可以直接通过容器名通信,这是推荐的容器互联方式:
@@ -21,7 +21,7 @@ $ docker run -d --name app --network app-net myapp
...
```
### 9.5.2 连接到多个网络
### 9.4.2 连接到多个网络
一个容器可以同时连接到多个网络,这对于需要跨网络通信的中间件容器特别有用:
@@ -39,7 +39,7 @@ $ docker network connect backend multi-net-container
$ docker inspect multi-net-container --format '{{json .NetworkSettings.Networks}}'
```
### 9.5.3 ⚠️ --link 已废弃
### 9.4.3 ⚠️ --link 已废弃
`--link` 是 Docker 早期用于容器互联的方式,**已经被废弃**,不建议在新项目中使用。请使用自定义网络替代:
+5 -5
View File
@@ -2,7 +2,7 @@
容器运行在自己的隔离网络环境中 (通常是 Bridge 模式)。为了让外部网络访问容器内的服务,我们需要将容器的端口映射到宿主机的端口。
### 9.6.1 为什么要映射端口
### 9.5.1 为什么要映射端口
容器的网络访问规则如下:
@@ -21,7 +21,7 @@ flowchart TD
---
### 9.6.2 端口映射方式
### 9.5.2 端口映射方式
Docker 提供了多种方式来指定端口映射。
@@ -66,7 +66,7 @@ abc123456 0.0.0.0:49153->80/tcp
---
### 9.6.3 查看端口映射
### 9.5.3 查看端口映射
可以使用以下命令查看容器的端口映射:
@@ -92,7 +92,7 @@ abc123456 nginx 0.0.0.0:8080->80/tcp web
---
### 9.6.4 最佳实践与安全
### 9.5.4 最佳实践与安全
在配置端口映射时,需要注意以下安全事项:
@@ -127,7 +127,7 @@ $ docker run -d -p 53:53/udp dns-server
---
### 9.6.5 实现原理
### 9.5.5 实现原理
Docker 使用 `docker-proxy` 进程 (用户态) 或 `iptables` DNAT 规则 (内核态) 来实现端口转发。
+4 -4
View File
@@ -2,7 +2,7 @@
Docker 网络提供了天然的隔离能力,不同网络之间的容器默认无法通信。这是 Docker 网络安全的重要基础。
### 9.7.1 网络隔离原理
### 9.6.1 网络隔离原理
不同网络之间默认隔离,容器只能与同一网络中的容器直接通信:
@@ -26,7 +26,7 @@ $ docker exec web ping db
ping: db: Name or service not known
```
### 9.7.2 安全优势
### 9.6.2 安全优势
这种隔离机制带来以下安全优势:
@@ -37,7 +37,7 @@ ping: db: Name or service not known
| **多租户** | 不同租户的容器在不同网络中完全隔离 |
| **最小权限** | 容器只能访问必要的网络资源 |
### 9.7.3 跨网络通信
### 9.6.3 跨网络通信
如果确实需要某个容器跨网络通信,可以将其同时连接到多个网络:
@@ -52,7 +52,7 @@ $ docker network connect backend api
这种方式让你可以精确控制哪些容器可以跨网络通信,遵循最小权限原则。
### 9.7.4 典型网络架构
### 9.6.4 典型网络架构
一个典型的多层应用网络架构如下: