Skip to content

Commit b196673

Browse files
committed
ops/virtualization: Fix Docker release note dead link; add ip6tables note
1 parent 6aa4643 commit b196673

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

docs/ops/virtualization/container.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -990,7 +990,7 @@ Docker 默认未开启 IPv6,并且在比较老的版本中,配置 IPv6 会
990990
- 要么每个容器一个公网 IPv6 地址(否则容器无法连接外部的 IPv6 网络)。要这么做的前提是得知道自己能控制的 IPv6 段,并且容器打开的所有端口都会暴露在公网上。
991991
- 使用[第三方的方案](https://github.com/robbertkl/docker-ipv6nat)帮忙做 IPv6 NAT,同时给容器分配 IPv6 的 ULA(Unique Local Address)地址段(目前可以分配 fd00::/8 内的地址段)。
992992

993-
不过好消息是,目前 Docker 添加了对 IPv6 NAT 的实验性支持,尽管默认的 bridge 网络的 IPv6 支持(基于 ip6tables)[在 27.0 版本后才默认打开](https://docs.docker.com/engine/release-notes/27.0/#ipv6)。如果正在使用 27.0 之前的版本,参考[对应的文档](https://docs.docker.com/config/daemon/ipv6/)[^ipv6-docaddr],一个配置 daemon.json 的例子如下:
993+
不过好消息是,目前 Docker 添加了对 IPv6 NAT 的实验性支持,尽管默认的 bridge 网络的 IPv6 支持(基于 ip6tables)[在 27.0 版本后才默认打开](https://docs.docker.com/engine/release-notes/27/#ipv6)。如果正在使用 27.0 之前的版本,参考[对应的文档](https://docs.docker.com/config/daemon/ipv6/)[^ipv6-docaddr],一个配置 daemon.json 的例子如下:
994994

995995
```json
996996
{
@@ -1024,6 +1024,10 @@ PING mirrors.ustc.edu.cn(2001:da8:d800:95::110 (2001:da8:d800:95::110)) 56 data
10241024
64 bytes from 2001:da8:d800:95::110 (2001:da8:d800:95::110): icmp_seq=1 ttl=62 time=2.42 ms
10251025
```
10261026

1027+
!!! note "ip6tables"
1028+
1029+
注意在以上配置(旧版本手工启用,或者新版本默认)的情况下,系统的 ip6tables 配置会被 Docker 管理。在某些环境下,这可能会干扰系统管理员做的其他配置。如果你已经设置了 `"iptables": false`,那么很有可能你也会需要设置 `"ip6tables": false`。
1030+
10271031
#### VLAN
10281032

10291033
VLAN(虚拟局域网)用于将一个物理局域网划分为多个逻辑上的局域网,以实现网络隔离。Docker 支持 `macvlan``ipvlan` 两种 VLAN 驱动,前者允许每个容器拥有自己的 MAC 地址,后者则允许每个容器拥有自己的 IP 地址(MAC 地址共享)。这个功能适用于需要将多个容器直接在某个特定网络内提供服务的场景——一种场景是,内网使用 tinc 互联,希望能够使用内网的 IP 地址连接内部服务,而这些服务又在 Docker 容器中。此时可以使用 Docker 的 VLAN 功能,并且为容器分配不同的内网 IP 地址,实现内网通过对应的 IP 即可直接访问到容器服务的需求。

0 commit comments

Comments
 (0)