自己搭建docker bridge network

一、写在前面

最近在看docker,觉得docker重点就是在做隔离,隔离网络,隔离文件系统,隔离进程,这就是docker集装箱的比喻的来源吧。

对docker网络比较感兴趣,所以想着自己用linux 的虚拟网络设备模拟一下docker的网络隔离,参考了网上许多优秀的文章,具体实现的时候碰到了不少问题,比如iptables防火墙的问题、DNS的问题,最后都解决了,现把整个过程记录如下(可以先看原理,文末有脚本可以直接复制)。

二、逐句讲解

首先环境的话,我是在win10上面装了个vmware虚拟机,然后里面装的是ubuntu的系统,在ubuntu里面做这个docker网络模拟实验

sudo ip netns add ns1

首先,先创建一个 network space ,它的名字叫做ns1, 这个相当于docker里面的容器 container

创建完之后,可以用命令 sudo ip netns list 来查看 (Note: 删除的命令是 sudo ip netns del ns1)

sudo ip netns list

之后我们再创建一个veth, veth就是一种虚拟网络设备,成对出现,在一端写会在另一端出

 sudo ip link add veth0 type veth peer name veth1

这里的veth0 和veth1 是表示veth两端设备的名字,可以改, veth是一种类型

这句代码的意思是创建一对veth, 一端叫veth0 ,一端叫veth1

然后我们把veth1端放进ns1 空间

sudo ip link set veth1 netns ns1

接着我们创建网桥br0 ,这个就相当于docker里面的docker0网桥 (Note:没有安装brctl的可以先安装)

sudo brctl addbr br0

将刚才的veth0一端接入网桥

sudo brctl addif br0 veth0

这个时候,我们配置一下veth1 和 br0 的 ip 地址并启动,启动veth0

sudo ip netns exec ns1 ifconfig veth1 172.8.0.8 up
sudo ifconfig br0 172.8.0.1 up
sudo ifconfig vet
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值