mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-11 12:21:17 +00:00
Add more content and fix format
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
## 9.2 配置 DNS
|
||||
## 9.1 配置 DNS
|
||||
|
||||
Docker 容器的 DNS 配置决定了容器如何解析域名。理解 DNS 机制对于容器网络的正确配置至关重要。
|
||||
Docker 1.10.0 以后,内建了一个 DNS 服务器,使得容器可以直接通过容器名称通信。方法很简单,只要在创建容器时使用 `--name` 为容器命名即可。
|
||||
|
||||
但是使用 Docker DNS 有个前提条件,就是它只能在 **自定义网络** 中使用。也就是说,如果使用的是默认的 `bridge` 网络,是无法使用 DNS 的,所以我们就需要自定义网络。
|
||||
|
||||
### 9.2.1 容器的 DNS 机制
|
||||
|
||||
@@ -13,7 +15,7 @@ Docker 容器的 DNS 配置有两种情况:
|
||||
|
||||
### 9.2.2 嵌入式 DNS
|
||||
|
||||
这是 Docker 网络最强大的功能之一。在自定义网络中,容器可以通过 "名字" 找到彼此,而不需要知道对方的 IP (因为 IP 可能会变)。
|
||||
这是 Docker 网络最强大的功能之一。在自定义网络中,容器可以通过 “名字” 找到彼此,而不需要知道对方的 IP (因为 IP 可能会变)。
|
||||
|
||||
```bash
|
||||
## 1. 创建自定义网络
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## 9.3 Docker 网络类型
|
||||
## 9.2 网络类型
|
||||
|
||||
Docker 提供了多种网络驱动来满足不同的使用场景。安装 Docker 后,系统会自动创建三个默认网络:
|
||||
|
||||
@@ -10,7 +10,7 @@ def456... host host local
|
||||
ghi789... none null local
|
||||
```
|
||||
|
||||
### 9.3.1 网络类型对比
|
||||
### 9.2.1 网络类型对比
|
||||
|
||||
各网络类型的特点和适用场景如下:
|
||||
|
||||
@@ -22,7 +22,7 @@ ghi789... none null local
|
||||
| **overlay** | 跨主机网络 | Docker Swarm 集群 |
|
||||
| **macvlan** | 容器拥有独立 MAC 地址 | 需要直接接入物理网络 |
|
||||
|
||||
### 9.3.2 Bridge 网络 (默认)
|
||||
### 9.2.2 Bridge 网络 (默认)
|
||||
|
||||
Bridge 是 Docker 默认使用的网络模式。Docker 启动时会自动创建 `docker0` 虚拟网桥,所有未指定网络的容器都会连接到这个网桥上。
|
||||
|
||||
@@ -35,7 +35,7 @@ Bridge 是 Docker 默认使用的网络模式。Docker 启动时会自动创建
|
||||
| **容器 eth0** | 容器内的网卡 |
|
||||
| **IP 地址** | 自动从 172.17.0.0/16 网段分配 |
|
||||
|
||||
### 9.3.3 Host 网络
|
||||
### 9.2.3 Host 网络
|
||||
|
||||
使用 `--network host` 参数启动的容器会直接使用宿主机的网络栈,不再拥有独立的网络命名空间。容器内的端口就是宿主机的端口,无需端口映射。
|
||||
|
||||
@@ -45,7 +45,7 @@ $ docker run -d --network host nginx
|
||||
|
||||
这种模式下网络性能最高,但容器之间和宿主机之间没有网络隔离。
|
||||
|
||||
### 9.3.4 None 网络
|
||||
### 9.2.4 None 网络
|
||||
|
||||
使用 `--network none` 参数启动的容器只有 `lo` 回环网卡,完全没有外部网络连接。适用于只需要运行计算任务、不需要网络的容器。
|
||||
|
||||
@@ -55,7 +55,7 @@ $ docker run -it --network none alpine ip addr
|
||||
inet 127.0.0.1/8 scope host lo
|
||||
```
|
||||
|
||||
### 9.3.5 数据流向
|
||||
### 9.2.5 数据流向
|
||||
|
||||
容器网络中的数据流向可以分为以下几种情况:
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## 9.4 用户自定义网络 (推荐)
|
||||
## 9.3 自定义网络
|
||||
|
||||
在生产环境中,推荐使用用户自定义网络代替默认的 bridge 网络。自定义网络提供了更好的隔离性和服务发现能力。
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## 9.5 容器互联
|
||||
## 9.4 容器互联
|
||||
|
||||
容器之间的网络通信是 Docker 网络的核心功能之一。本节介绍容器互联的几种方式。
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## 9.6 外部访问容器
|
||||
## 9.5 外部访问容器
|
||||
|
||||
容器运行在自己的隔离网络环境中 (通常是 Bridge 模式)。为了让外部网络访问容器内的服务,我们需要将容器的端口映射到宿主机的端口。
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## 9.7 网络隔离
|
||||
## 9.6 网络隔离
|
||||
|
||||
Docker 网络提供了天然的隔离能力,不同网络之间的容器默认无法通信。这是 Docker 网络安全的重要基础。
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## 9.8 本章小结
|
||||
## 本章小结
|
||||
|
||||
本章介绍了 Docker 网络配置的各个方面:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user