Add blank lines around headers

This commit is contained in:
yeasy
2026-03-24 09:27:04 -07:00
parent 857e3b73f6
commit ae8636e96f
112 changed files with 468 additions and 0 deletions

View File

@@ -49,6 +49,7 @@ Docker 守护进程在 `127.0.0.11` 运行了一个 DNS 服务器。容器内的
$ docker run -it --dns=114.114.114.114 ubuntu cat /etc/resolv.conf
nameserver 114.114.114.114
```
#### 2. --dns-search
指定 DNS 搜索域例如设置为 `example.com` `ping host` 会尝试解析 `host.example.com`
@@ -56,6 +57,7 @@ nameserver 114.114.114.114
```bash
$ docker run --dns-search=example.com myapp
```
#### 3. --hostname -h
设置容器的主机名

View File

@@ -9,6 +9,7 @@ abc123... bridge bridge local
def456... host host local
ghi789... none null local
```
### 9.2.1 网络类型对比
各网络类型的特点和适用场景如下
@@ -52,6 +53,7 @@ $ docker run -it --network none alpine ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> ...
inet 127.0.0.1/8 scope host lo
```
### 9.2.5 数据流向
容器网络中的数据流向可以分为以下几种情况

View File

@@ -25,6 +25,7 @@ $ docker network create mynet
$ docker network inspect mynet
```
### 9.3.3 使用自定义网络
启动容器时通过 `--network` 参数指定连接的网络
@@ -41,6 +42,7 @@ $ docker exec web ping db
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.3.4 容器名 DNS 解析
自定义网络自动提供 DNS 服务Docker 守护进程在 `127.0.0.11` 运行了一个嵌入式 DNS 服务器容器内的 DNS 请求会被转发到这里
@@ -55,6 +57,7 @@ flowchart LR
Web["web<br/>172.18.0.2"] -- "DNS: 'db' → 172.18.0.3" --> DB["db<br/>172.18.0.3"]
end
```
### 9.3.5 常用网络命令
以下是 Docker 网络管理中常用的命令

View File

@@ -20,6 +20,7 @@ $ docker run -d --name app --network app-net myapp
...
```
### 9.4.2 连接到多个网络
一个容器可以同时连接到多个网络这对于需要跨网络通信的中间件容器特别有用
@@ -37,6 +38,7 @@ $ docker network connect backend multi-net-container
$ docker inspect multi-net-container --format '{{json .NetworkSettings.Networks}}'
```
### 9.4.3 --link 已废弃
`--link` Docker 早期用于容器互联的方式**已经被废弃**不建议在新项目中使用请使用自定义网络替代

View File

@@ -75,6 +75,7 @@ $ docker port mycontainer
80/tcp -> 0.0.0.0:8080
80/tcp -> [::]:8080
```
#### docker ps
运行 `docker ps` 可以查看到所有容器的端口映射列表
@@ -101,6 +102,7 @@ abc123456 nginx 0.0.0.0:8080->80/tcp web
$ docker run -d -p 127.0.0.1:3306:3306 mysql
```
#### 2. 避免端口冲突
如果宿主机 8080 已经被占用了容器将无法启动

View File

@@ -25,6 +25,7 @@ $ docker run -d --name db --network backend postgres
$ docker exec web ping db
ping: db: Name or service not known
```
### 9.6.2 安全优势
这种隔离机制带来以下安全优势

View File

@@ -29,6 +29,7 @@ veth 对
容器 B (192.168.0.3,不同宿主机)
```
#### 创建和使用 Overlay 网络
**Docker Swarm 模式下的 Overlay 网络**
@@ -73,6 +74,7 @@ docker exec container1 curl http://container2
# 检查网络配置
docker network inspect custom-overlay
```
#### Overlay 网络性能优化
```bash
@@ -107,6 +109,7 @@ networks:
driver_opts:
com.docker.network.driver.mtu: 1450
```
### 9.7.2 CNI 插件生态概览
容器网络接口CNI是容器编排平台尤其是 Kubernetes的标准化网络接口不同的 CNI 插件提供不同的网络能力
@@ -255,6 +258,7 @@ Docker 内嵌 DNS 服务器 (127.0.0.11)
DNS 响应 → 容器缓存 → 应用
```
#### 配置容器 DNS
**在运行时指定 DNS**
@@ -317,6 +321,7 @@ networks:
"registry-mirrors": ["https://mirror.example.com"]
}
```
#### 自定义服务发现
**使用 Docker 内建 DNS 的服务发现**
@@ -361,6 +366,7 @@ services:
# frontend 容器可以直接访问 http://backend:8080
# backend 容器可以直接访问 postgres://database:5432
```
#### DNS 性能优化
```bash
@@ -393,6 +399,7 @@ kubectl patch deployment -n kube-system coredns --patch '{
}
}'
```
### 9.7.4 网络策略实践
网络策略定义了容器间的流量控制规则是微服务架构中的安全基础
@@ -473,6 +480,7 @@ spec:
- protocol: TCP
port: 443
```
#### 微服务网络策略示例
```yaml
@@ -597,6 +605,7 @@ spec:
- protocol: TCP
port: 5432
```
#### 使用 Calico/Cilium 的高级网络策略
**L7 应用层策略 Cilium 支持**
@@ -630,6 +639,7 @@ spec:
sourceIPs:
- "10.0.0.0/8"
```
### 9.7.5 跨主机容器通信方案对比
#### 方案对比表
@@ -661,6 +671,7 @@ helm install cilium cilium/cilium --namespace kube-system
# 5. 需要多云/跨域:使用 Weave
```
### 9.7.6 网络故障排查
**常见网络问题诊断**