🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 自定义网桥 除了默认的 `docker0` 网桥,用户也可以指定网桥来连接各个容器。 在启动 Docker 服务的时候,使用 `-b BRIDGE`或`--bridge=BRIDGE` 来指定使用的网桥。 如果服务已经运行,那需要先停止服务,并删除旧的网桥。 ``` <pre class="prettyprint"><ol class="linenums"><li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">$ sudo systemctl stop docker</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">$ sudo ip link </span><span class="kwd">set</span><span class="pln"> dev docker0 down</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">$ sudo brctl delbr docker0</span></code></li> </ol> ``` 然后创建一个网桥 `bridge0`。 ``` <pre class="prettyprint"><ol class="linenums"><li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">$ sudo brctl addbr bridge0</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">$ sudo ip addr add </span><span class="lit">192.168</span><span class="pun">.</span><span class="lit">5.1</span><span class="pun">/</span><span class="lit">24</span><span class="pln"> dev bridge0</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">$ sudo ip link </span><span class="kwd">set</span><span class="pln"> dev bridge0 up</span></code></li> </ol> ``` 查看确认网桥创建并启动。 ``` <pre class="prettyprint"><ol class="linenums"><li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">$ ip addr show bridge0</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="lit">4</span><span class="pun">:</span><span class="pln"> bridge0</span><span class="pun">:</span><span class="pln"> </span><span class="pun"><</span><span class="pln">BROADCAST</span><span class="pun">,</span><span class="pln">MULTICAST</span><span class="pun">></span><span class="pln"> mtu </span><span class="lit">1500</span><span class="pln"> qdisc noop state UP group default</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln"> link</span><span class="pun">/</span><span class="pln">ether </span><span class="lit">66</span><span class="pun">:</span><span class="lit">38</span><span class="pun">:</span><span class="pln">d0</span><span class="pun">:</span><span class="lit">0d</span><span class="pun">:</span><span class="lit">76</span><span class="pun">:</span><span class="lit">18</span><span class="pln"> brd ff</span><span class="pun">:</span><span class="pln">ff</span><span class="pun">:</span><span class="pln">ff</span><span class="pun">:</span><span class="pln">ff</span><span class="pun">:</span><span class="pln">ff</span><span class="pun">:</span><span class="pln">ff</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln"> inet </span><span class="lit">192.168</span><span class="pun">.</span><span class="lit">5.1</span><span class="pun">/</span><span class="lit">24</span><span class="pln"> scope global bridge0</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln"> valid_lft forever preferred_lft forever</span></code></li> </ol> ``` 在 Docker 配置文件 `/etc/docker/daemon.json` 中添加如下内容,即可将 Docker 默认桥接到创建的网桥上。 ``` <pre class="prettyprint"><ol class="linenums"><li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pun">{</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln"> </span><span class="str">"bridge"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"bridge0"</span><span class="pun">,</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pun">}</span></code></li> </ol> ``` 启动 Docker 服务。 新建一个容器,可以看到它已经桥接到了 `bridge0` 上。 可以继续用 `brctl show` 命令查看桥接的信息。另外,在容器中可以使用 `ip addr` 和 `ip route` 命令来查看 IP 地址配置和路由信息。