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

阿里云ESC如何使用pipework等工具规划docker网络

2019-01-09 15:44 330 查看

阿里云中新增一个172.19.1.0/24的交换机

停止ESC实例,选择新的交换机,然后修改私有IP 172.19.1.1

ip地址分配规则:
host1 eth0 172.19.1.1 mybr0 取172.19.1.10 mybr0上的容器172.19.1.11-172.19.1.19
host2 eth0 172.19.1.2 mybr0 取172.19.1.20 mybr0上的容器172.19.1.21-172.19.1.29

host9 eth0 172.19.1.9 mybr0 取172.19.1.90 mybr0上的容器172.19.1.91-172.19.1.99

host11 eth0 172.19.1.101 mybr0 取172.19.1.101 mybr0上的容器172.19.1.111-172.19.1.119
host12 eth0 172.19.1.102 mybr0 取172.19.1.102 mybr0上的容器172.19.1.121-172.19.1.129

host19 eth0 172.19.1.109 mybr0 取172.19.1.190 mybr0上的容器172.19.1.191-172.19.1.199

host21 eth0 172.19.1.201 mybr0 取172.19.1.210 mybr0上的容器172.19.1.211-172.19.1.219

host24 eth0 172.19.1.204 mybr0 取172.19.1.240 mybr0上的容器172.19.1.241-172.19.1.249

以上一个交换机可以挂22台物理主机,每台主机可以挂9台docker容器,如果还不够放可以增加其他网段的交换机,比如172.19.2.0/24的交互机

//用命令增加网桥mybr0
brctl addbr mybr0

ip link set dev mybr0 up

//这个地方要注意,docker会记住ip地址,以后无论怎么删除添加同名的,docker启动后都会使用原来的地址,所以实在
//没有办法可以改个网桥名称
ip addr add 172.19.1.10/24 dev mybr0

//这个地方比较关键,不要等docker启动后再service network restart,这样会使得
//net.ipv4.ip_forward=0,docker启动的时候会设置sysctl net.ipv4.ip_forward=1 不设置这个值无法路由ping通外网

service network restart

//修改docker的配置文件中让docker默认使用mybr0
//具体修改哪个文件需要参考网上文章,docker启动时候会读取好几个初始化配置文件

vi /etc/sysconfig/docker
DOCKER_OPTS="-b=mybr0"

//启动docker服务

systemctl start docker

//启动docker容器
//主要–net=none 使得容器启动时候是没有任何网络的
//–privileged=true权限完全开放会有安全问题,不过新手这样做比较省事
//以后运行容器用 docker start centos
docker run --name=centos --net=none --privileged=true -itd centos_net /bin/bash

//使用pipework指定固定ip
pipework mybr0 -i eth0 centos 172.19.1.11/24@172.19.1.10

//到容器中看看网卡情况
docker attach centos
ip a

ping 172.19.1.1

ping www.baidu.com

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: