fix the terminologies, add more content

This commit is contained in:
Baohua Yang
2014-09-17 16:31:25 +08:00
parent 7f5c1acf09
commit 22afe36b0f
9 changed files with 58 additions and 40 deletions

View File

@@ -1,8 +1,8 @@
##工具和示例
在介绍自定义网络拓扑之前,你可能会对一些外部工具和例子感兴趣:
https://github.com/jpetazzo/pipework
https://github.com/jpetazzo/pipework
Jérôme Petazzoni 创建了一个叫pipework的shell脚本来帮助我们在复杂的场景中完成网络连接
https://github.com/brandon-rhodes/fopnp/tree/m/playground
https://github.com/brandon-rhodes/fopnp/tree/m/playground
Brandon Rhodes创建了一个完整的docker容器网络拓扑包含 nat 防火墙服务包括HTTP, SMTP, POP, IMAP, Telnet, SSH, and FTP:
工具使用的网络命令跟我们之前看到非常相似。
工具使用的网络命令跟之前看到非常相似。

View File

@@ -1,15 +1,15 @@
##创建一个点到点连接
默认docker会将所有容器连接到由docker0提供的虚拟子网你也可以使用自己创建的网桥。但如果你想要2个特殊的容器之间可以直连通信而不用去配置复杂的主机网卡桥接。
解决办法很简单创建一对接口把2个容器放到这对接口中配置成点到点链路类型。这2个容器就可以直接通信了。配置如下
默认Docker会将所有容器连接到由docker0提供的虚拟子网你也可以使用自己创建的网桥。但如果你想要2个特殊的容器之间可以直连通信而不用去配置复杂的主机网卡桥接。
解决办法很简单创建一对接口把2个容器放到这对接口中配置成点到点链路类型。这2个容器就可以直接通信了。首先启动2个容器
```
# 在2个终端中启动2个容器
$ sudo docker run -i -t --rm --net=none base /bin/bash
root@1f1f4c1f931a:/#
$ sudo docker run -i -t --rm --net=none base /bin/bash
root@12e343489d2f:/#
```
找到他们的process IDs ,然后创建他们的 namespace entries
找到他们的进程号,然后创建他们的 namespace entries
```
$ sudo docker inspect -f '{{.State.Pid}}' 1f1f4c1f931a
2989
@@ -34,7 +34,7 @@ $ sudo ip netns exec 3004 ip addr add 10.1.1.2/32 dev B
$ sudo ip netns exec 3004 ip link set B up
$ sudo ip netns exec 3004 ip route add 10.1.1.1/32 dev B
```
现在这2个容器就可以相互ping通并成功建立连接。点到点链路不需要子网和子网掩码使用ip route 来连接单个ip地址到指定的网络接口。
如果没有特殊需要你不需要指定--net=none来创建点到点链路。
现在这2个容器就可以相互ping通并成功建立连接。点到点链路不需要子网和子网掩码使用`ip route`来连接单个ip地址到指定的网络接口。
如果没有特殊需要你不需要指定`--net=none`来创建点到点链路。
还有一个办法就是创建一个只跟主机通信的容器,除非有特殊需求,你可以仅用--icc=false来限制主机间的通信。
还有一个办法就是创建一个只跟主机通信的容器,除非有特殊需求,你可以仅用`--icc=false`来限制主机间的通信。