Remove blank lines after code block markers

This commit is contained in:
yeasy
2026-03-21 22:36:09 -07:00
parent 312f8fea42
commit 9ac19d79ee
132 changed files with 0 additions and 1517 deletions

View File

@@ -18,7 +18,6 @@ flowchart TD
Host --> Proxy["Docker Proxy<br/>端口映射 (8080 -> 80)"]
Proxy --> Container["容器 (Class B: 80)"]
```
---
### 9.5.2 端口映射方式
@@ -30,12 +29,10 @@ Docker 提供了多种方式来指定端口映射。
使用 `-p <宿主机端口>:<容器端口>` 格式
```bash
## 将宿主机的 8080 端口映射到容器的 80 端口
$ docker run -d -p 8080:80 nginx
```
此时访问 `http://localhost:8080` 即可看到 Nginx 页面
**多种格式**
@@ -54,7 +51,6 @@ $ docker run -d -p 8080:80 nginx
```bash
$ docker run -d -P nginx
```
查看映射结果
```bash
@@ -62,7 +58,6 @@ $ docker ps
CONTAINER ID PORTS
abc123456 0.0.0.0:49153->80/tcp
```
此时 Nginx 被映射到了宿主机的 49153 端口
---
@@ -80,7 +75,6 @@ $ docker port mycontainer
80/tcp -> 0.0.0.0:8080
80/tcp -> [::]:8080
```
#### docker ps
运行 `docker ps` 可以查看到所有容器的端口映射列表
@@ -90,7 +84,6 @@ $ docker ps
CONTAINER ID IMAGE PORTS NAMES
abc123456 nginx 0.0.0.0:8080->80/tcp web
```
---
### 9.5.4 最佳实践与安全
@@ -104,12 +97,10 @@ abc123456 nginx 0.0.0.0:8080->80/tcp web
如果不希望对外暴露 (例如数据库服务)应绑定到 `127.0.0.1`
```bash
## 仅允许本机访问
$ docker run -d -p 127.0.0.1:3306:3306 mysql
```
#### 2. 避免端口冲突
如果宿主机 8080 已经被占用了容器将无法启动
@@ -126,7 +117,6 @@ $ docker run -d -p 127.0.0.1:3306:3306 mysql
```bash
$ docker run -d -p 53:53/udp dns-server
```
---
### 9.5.5 实现原理
@@ -136,12 +126,10 @@ Docker 使用 `docker-proxy` 进程 (用户态) 或 `iptables` DNAT 规则 (内
当流量到达宿主机端口时iptables 规则将其目标地址修改为容器 IP 并转发
```bash
## 简化的 iptables 逻辑
iptables -t nat -A DOCKER -p tcp --dport 8080 -j DNAT --to-destination 172.17.0.2:80
```
这也是为什么你在容器内部看到的访问来源 IP 通常是网关 IP ( 172.17.0.1)而不是真实的外部 Client IP (除非使用 host 网络模式)
---