mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-25 19:25:27 +00:00
Add blank lines before headers
This commit is contained in:
@@ -13,6 +13,7 @@ EXPOSE <端口> [<端口>/<协议>...]
|
||||
### 7.9.2 基本用法
|
||||
|
||||
```docker
|
||||
|
||||
## 声明单个端口
|
||||
|
||||
EXPOSE 80
|
||||
@@ -36,12 +37,14 @@ EXPOSE 53/udp
|
||||
告诉镜像使用者,容器将在哪些端口提供服务:
|
||||
|
||||
```docker
|
||||
|
||||
## 使用者一看就知道这是 web 应用
|
||||
|
||||
EXPOSE 80 443
|
||||
```
|
||||
|
||||
```bash
|
||||
|
||||
## 查看镜像暴露的端口
|
||||
|
||||
$ docker inspect nginx --format '{{.Config.ExposedPorts}}'
|
||||
@@ -53,6 +56,7 @@ map[80/tcp:{}]
|
||||
使用 `docker run -P` 时,Docker 会自动映射 EXPOSE 的端口到宿主机随机端口:
|
||||
|
||||
```docker
|
||||
|
||||
## Dockerfile
|
||||
|
||||
EXPOSE 80
|
||||
@@ -85,15 +89,18 @@ flowchart TD
|
||||
#### 没有 EXPOSE 也能 -p
|
||||
|
||||
```docker
|
||||
|
||||
## 即使没有 EXPOSE,也可以使用 -p
|
||||
|
||||
FROM nginx
|
||||
|
||||
## 没有 EXPOSE
|
||||
|
||||
...
|
||||
```
|
||||
|
||||
```bash
|
||||
|
||||
## 仍然可以映射端口
|
||||
|
||||
$ docker run -p 8080:80 mynginx
|
||||
@@ -106,6 +113,7 @@ $ docker run -p 8080:80 mynginx
|
||||
#### 误解:EXPOSE 会打开端口
|
||||
|
||||
```docker
|
||||
|
||||
## ❌ 错误理解:这不会让容器可从外部访问
|
||||
|
||||
EXPOSE 80
|
||||
@@ -122,6 +130,7 @@ EXPOSE 只是元数据声明。容器是否实际监听该端口,取决于容
|
||||
#### 正确理解
|
||||
|
||||
```docker
|
||||
|
||||
## Dockerfile
|
||||
|
||||
FROM nginx
|
||||
@@ -129,6 +138,7 @@ EXPOSE 80 # 1. 声明:这个容器会在 80 端口提供服务
|
||||
```
|
||||
|
||||
```bash
|
||||
|
||||
## 运行:需要 -p 才能从外部访问
|
||||
|
||||
$ docker run -p 8080:80 nginx # 2. 映射:宿主机 8080 → 容器 80
|
||||
@@ -141,6 +151,7 @@ $ docker run -p 8080:80 nginx # 2. 映射:宿主机 8080 → 容器 80
|
||||
#### 1. 总是声明应用使用的端口
|
||||
|
||||
```docker
|
||||
|
||||
## Web 服务
|
||||
|
||||
FROM nginx
|
||||
@@ -160,6 +171,7 @@ EXPOSE 6379
|
||||
#### 2. 使用明确的协议
|
||||
|
||||
```docker
|
||||
|
||||
## 默认是 TCP
|
||||
|
||||
EXPOSE 80
|
||||
@@ -176,6 +188,7 @@ EXPOSE 53/tcp 53/udp
|
||||
#### 3. 与应用实际端口保持一致
|
||||
|
||||
```docker
|
||||
|
||||
## ✅ 好:EXPOSE 与应用端口一致
|
||||
|
||||
ENV PORT=3000
|
||||
|
||||
Reference in New Issue
Block a user