您的位置:首页 > 运维架构 > Docker

Docker创建一个网桥【段]

2018-02-24 00:00 295 查看
摘要: 上篇说了只建了容器,但是没有指定IP。这样每次重启主服务器就要重新修改nginx的配置。今天说的是绑定ip...

Docker服务默认会创建一个 docker0 网桥(其上有一个 docker0 内部接口),它在内核层连通了其他
的物理或虚拟网卡, 这就将所有容器和本地主机都放到同一个物理网络。
Docker 默认指定了 docker0 接口 的 IP 地址和子网掩码, 让主机和容器之间 可以通过网桥相互通信,它
还给出了 MTU(接口允许接收的最大传输单元),通常是 1500 Bytes,或宿主主机网络路由上支持的默认
值。 这些值都可以在服务启动的时候进行配置。

#brctl show
bridge name     bridge id               STP enabled     interfaces
docker0         8000.869d2e8946b5       no              veth81bbfc0

自定义网桥:使用情景:1,多台docker容器建不同的个ip段 2,按需要自定义网段

1.如果服务已经运行,那需要先停止服务,并删除旧的网桥。

$	sudo	service	docker	stop
$	sudo	ip	link	set	dev	docker0	down
$	sudo	brctl	delbr	docker0

2.然后创建一个网桥 bridge0 。

$	sudo	brctl	addbr	bridge0
$	sudo	ip	addr	add	192.168.5.1/24	dev	bridge0
$	sudo	ip	link	set	dev	bridge0	u
```p

3,查看增加结果.

#brctl show
bridge name bridge id STP enabled interfaces
bridge0 8000.000000000000 no
docker0 8000.869d2e8946b5 no veth81bbfc0

#ip addr show bridge0
675: bridge0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
link/ether 22:3b:a4:38:3f:e4 brd ff:ff:ff:ff:ff:ff
inet 192.168.5.1/24 scope global bridge0
inet6 fe80::203b:a4ff:fe38:3fe4/64 scope link
valid_lft forever preferred_lft forever

4,配置	Docker	服务,默认桥接到创建的网桥上。[将系统默认的docker0换成了bridge0]

$ echo 'DOCKER_OPTS="-b=bridge0"' >> /etc/default/docker [/etc/default/docker是空文件]
$ sudo service docker start

说明:
1,平时我们使用linux的网络配置直接修改hosts或hostname,但是在docker内修改是无效的。

2,Docker	1.2.0	开始支持在运行中的容器里编辑 /etc/hosts	,	/etc/hostname	和 /etc/resolve.conf	文
件。但是这些修改是临时的,只在运行的容器中保留,容器终止或重启后并不会被保存下来。也不会被 docker
commit	提交。

3,由于本人使用的linux内核是2.6.32-504.3.3.el6.x86_64,不能使用网络功能。所以没有后续

4,如果需要指定容器的ip的,请先将内核升级到3.10 ; 然后使用pipework br0 879119a191a8 192.168.5.2/24@192.168.5.1 配置。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: