This commit is contained in:
khs1994
2017-11-13 18:54:38 +08:00
parent f838297f05
commit d1a640f383
16 changed files with 134 additions and 133 deletions

View File

@@ -4,19 +4,20 @@
在启动 Docker 服务的时候,使用 `-b BRIDGE``--bridge=BRIDGE` 来指定使用的网桥。
如果服务已经运行,那需要先停止服务,并删除旧的网桥。
```
$ sudo service docker stop
```bash
$ sudo systemctl stop docker
$ sudo ip link set dev docker0 down
$ sudo brctl delbr docker0
```
然后创建一个网桥 `bridge0`
```
```bash
$ sudo brctl addbr bridge0
$ sudo ip addr add 192.168.5.1/24 dev bridge0
$ sudo ip link set dev bridge0 up
```
查看确认网桥创建并启动。
```
```bash
$ 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
@@ -24,9 +25,9 @@ $ ip addr show bridge0
valid_lft forever preferred_lft forever
```
配置 Docker 服务,默认桥接到创建的网桥上。
```
```bash
$ echo 'DOCKER_OPTS="-b=bridge0"' >> /etc/default/docker
$ sudo service docker start
$ sudo systemctl start docker
```
启动 Docker 服务。
新建一个容器,可以看到它已经桥接到了 `bridge0` 上。

View File

@@ -6,18 +6,18 @@
解决办法很简单:创建一对 `peer` 接口,分别放到两个容器中,配置成点到点链路类型即可。
首先启动 2 个容器:
```
$ sudo docker run -i -t --rm --net=none base /bin/bash
```bash
$ docker run -i -t --rm --net=none base /bin/bash
root@1f1f4c1f931a:/#
$ sudo docker run -i -t --rm --net=none base /bin/bash
$ docker run -i -t --rm --net=none base /bin/bash
root@12e343489d2f:/#
```
找到进程号,然后创建网络命名空间的跟踪文件。
```
$ sudo docker inspect -f '{{.State.Pid}}' 1f1f4c1f931a
```bash
$ docker inspect -f '{{.State.Pid}}' 1f1f4c1f931a
2989
$ sudo docker inspect -f '{{.State.Pid}}' 12e343489d2f
$ docker inspect -f '{{.State.Pid}}' 12e343489d2f
3004
$ sudo mkdir -p /var/run/netns
$ sudo ln -s /proc/2989/ns/net /var/run/netns/2989
@@ -25,7 +25,7 @@ $ sudo ln -s /proc/3004/ns/net /var/run/netns/3004
```
创建一对 `peer` 接口,然后配置路由
```
```bash
$ sudo ip link add A type veth peer name B
$ sudo ip link set A netns 2989