style: apply global formatting fixes (struct, spacing, zhlint)

This commit is contained in:
Baohua Yang
2026-02-21 11:08:52 -08:00
parent ad68b2d973
commit 79ac9c639a
159 changed files with 1708 additions and 882 deletions

View File

@@ -1,7 +1,11 @@
## 7.9 EXPOSE 声明端口
本节涵盖了相关内容与详细描述主要探讨以下几个方面
### 基本语法
如下代码块所示展示了相关示例
```docker
EXPOSE <端口> [<端口>/<协议>...]
```
@@ -12,6 +16,8 @@ EXPOSE <端口> [<端口>/<协议>...]
### 基本用法
如下代码块所示展示了相关示例
```docker
## 声明单个端口
@@ -31,7 +37,9 @@ EXPOSE 53/udp
### EXPOSE 的作用
#### 1. 文档说明
本节涵盖了相关内容与详细描述主要探讨以下几个方面
#### 1文档说明
告诉镜像使用者容器将在哪些端口提供服务
@@ -48,7 +56,7 @@ $ docker inspect nginx --format '{{.Config.ExposedPorts}}'
map[80/tcp:{}]
```
#### 2. 配合 -P 使用
#### 2配合 -P 使用
使用 `docker run -P` Docker 会自动映射 EXPOSE 的端口到宿主机随机端口
@@ -82,8 +90,14 @@ flowchart TD
Expose ~~~ Run
```
#### 概述
总体概述了以下内容
#### 没有 EXPOSE 也能 -p
如下代码块所示展示了相关示例
```docker
## 即使没有 EXPOSE也可以使用 -p
@@ -103,8 +117,12 @@ $ docker run -p 8080:80 mynginx
### 常见误解
本节涵盖了相关内容与详细描述主要探讨以下几个方面
#### 误解EXPOSE 会打开端口
如下代码块所示展示了相关示例
```docker
## ❌ 错误理解:这不会让容器可从外部访问
@@ -120,6 +138,8 @@ EXPOSE 只是元数据声明。容器是否实际监听该端口,取决于容
#### 正确理解
如下代码块所示展示了相关示例
```docker
## Dockerfile
@@ -137,7 +157,11 @@ $ docker run -p 8080:80 nginx # 2. 映射:宿主机 8080 → 容器 80
### 最佳实践
#### 1. 总是声明应用使用的端口
本节涵盖了相关内容与详细描述主要探讨以下几个方面
#### 1总是声明应用使用的端口
如下代码块所示展示了相关示例
```docker
## Web 服务
@@ -156,7 +180,9 @@ FROM redis
EXPOSE 6379
```
#### 2. 使用明确的协议
#### 2使用明确的协议
如下代码块所示展示了相关示例
```docker
## 默认是 TCP
@@ -172,7 +198,9 @@ EXPOSE 53/udp
EXPOSE 53/tcp 53/udp
```
#### 3. 与应用实际端口保持一致
#### 3与应用实际端口保持一致
如下代码块所示展示了相关示例
```docker
## ✅ 好EXPOSE 与应用端口一致
@@ -191,6 +219,8 @@ CMD ["node", "server.js"] # 实际监听 3000
### 使用环境变量
如下代码块所示展示了相关示例
```docker
ARG PORT=80
EXPOSE $PORT
@@ -200,7 +230,7 @@ EXPOSE $PORT
### Compose
Compose 配置如下
Compose 中配置如下
```yaml
services: