用Pipework给Docker多容器配置局域网网络
遇到问题:用pipework工具给Docker容器指定局域网IP地址,容器无法与局域网、外网通信。
pipework是由Docker的工程师Jérôme Petazzoni开发的一个Docker网络配置工具。Docker自身的网络功能比较简单,不能满足很多复杂的应用场景。因此,有很多开源项目用来改善Docker的网络功能,如pipework、weave、flannel等。
这里记录了,笔者在参考两本书的过程中, 使用pipework配置Docker多容器时遇到问题,以及最后的解决办法。
操作流程:
1). 从github上下载pipework:
$ git clone https://github.com/jpetazzo/pipework
2). 开启一个无网络模式指定(–net=none)的容器
$ sudo docker run -it --rm --net=none --name cookbook ubuntu:14.04 bash
root@15afb0c398c5:/# ip -d link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 promiscuity 0
root@15afb0c398c5:/# ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
3). 在另外一个终端窗口使用pipework完成cookbook容器配置
$ sudo pipework/pipework br0 cookbook 192.168.1.10/24@192.168.1.254
[sudo] password for mingchen:
[mingchen:~]
$ ip -d link