2014-10-14 13:25:01 +08:00
|
|
|
|
## 自定义网桥
|
2017-11-29 10:23:42 +08:00
|
|
|
|
|
2014-10-14 13:25:01 +08:00
|
|
|
|
除了默认的 `docker0` 网桥,用户也可以指定网桥来连接各个容器。
|
2014-09-18 17:38:20 +08:00
|
|
|
|
|
2014-10-14 13:25:01 +08:00
|
|
|
|
在启动 Docker 服务的时候,使用 `-b BRIDGE`或`--bridge=BRIDGE` 来指定使用的网桥。
|
2014-09-18 17:38:20 +08:00
|
|
|
|
|
|
|
|
|
如果服务已经运行,那需要先停止服务,并删除旧的网桥。
|
2017-11-13 18:54:38 +08:00
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
$ sudo systemctl stop docker
|
2014-09-05 15:50:54 +08:00
|
|
|
|
$ sudo ip link set dev docker0 down
|
|
|
|
|
$ sudo brctl delbr docker0
|
|
|
|
|
```
|
2017-11-29 10:23:42 +08:00
|
|
|
|
|
2014-10-14 13:25:01 +08:00
|
|
|
|
然后创建一个网桥 `bridge0`。
|
2017-11-29 10:23:42 +08:00
|
|
|
|
|
2017-11-13 18:54:38 +08:00
|
|
|
|
```bash
|
2014-09-05 15:50:54 +08:00
|
|
|
|
$ sudo brctl addbr bridge0
|
|
|
|
|
$ sudo ip addr add 192.168.5.1/24 dev bridge0
|
|
|
|
|
$ sudo ip link set dev bridge0 up
|
|
|
|
|
```
|
2017-11-29 10:23:42 +08:00
|
|
|
|
|
2014-09-18 17:38:20 +08:00
|
|
|
|
查看确认网桥创建并启动。
|
2017-11-29 10:23:42 +08:00
|
|
|
|
|
2017-11-13 18:54:38 +08:00
|
|
|
|
```bash
|
2014-09-05 15:50:54 +08:00
|
|
|
|
$ ip addr show bridge0
|
|
|
|
|
4: bridge0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state UP group default
|
|
|
|
|
link/ether 66:38:d0:0d:76:18 brd ff:ff:ff:ff:ff:ff
|
|
|
|
|
inet 192.168.5.1/24 scope global bridge0
|
|
|
|
|
valid_lft forever preferred_lft forever
|
|
|
|
|
```
|
2017-11-29 10:23:42 +08:00
|
|
|
|
|
|
|
|
|
在 Docker 配置文件 `/etc/docker/daemon.json` 中添加如下内容,即可将 Docker 默认桥接到创建的网桥上。
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"bridge": "bridge0",
|
|
|
|
|
}
|
2014-09-05 15:50:54 +08:00
|
|
|
|
```
|
2017-11-29 10:23:42 +08:00
|
|
|
|
|
2014-10-14 13:25:01 +08:00
|
|
|
|
启动 Docker 服务。
|
2017-11-29 10:23:42 +08:00
|
|
|
|
|
2014-10-14 13:25:01 +08:00
|
|
|
|
新建一个容器,可以看到它已经桥接到了 `bridge0` 上。
|
2014-09-18 17:38:20 +08:00
|
|
|
|
|
2014-10-14 13:25:01 +08:00
|
|
|
|
可以继续用 `brctl show` 命令查看桥接的信息。另外,在容器中可以使用 `ip addr` 和 `ip route` 命令来查看 IP 地址配置和路由信息。
|