Docker容器学习与分享06

本文详细介绍了Docker桥接网络的工作原理,包括虚拟网桥docker0的作用、容器内部网络接口eth0的创建过程以及如何通过修改docker0的IP地址来改变容器的网络配置。

Docker容器网络

Docker有三种原生网络:none网络host网络bridge网络
先来学习一下bridge网络
首先使用ifconfig命令查看一下本机的网络设备:
1417438-20180615141121466-1370620022.jpg
从图中可以看见多出一个名为docker0的设备,这个docker0就是linux的虚拟网桥,docker的守护进程就是通过这个名为docker0的设备为docker容器提供网络连接的各种服务。
虚拟网桥:可以设置IP地址,相当于一个虚拟网卡,可以用于连接多个端口,可以构建一个局域网,可以简单的理解为二层的交换机,但两者并不等同。
Docker容器守护进程在容器启动时会自动创建连接网络的两端,一端是在容器中的网络设备,另一端时在docker运行的主机上创建一个名为veth*的接口用来实现docker0与容器的网络通信。
1417438-20180615141132458-1942077808.jpg
接下来来看一下docker中的网桥管理。
首先需要安装网桥管理工具bridge-utils
1417438-20180615141139930-1691080840.jpg
安装完成之后来查看一下网桥设备:
1417438-20180615141148777-1253484574.jpg
可以看到默认的虚拟网桥docker0,现在创建一个centos容器:
启动完容器发现ifconfig命令没有用,是因为ifconfig命令需要安装net-tools工具包。
1417438-20180615141157128-741002657.jpg
安装net-tools工具包之后就可以使用ifconfig命令了,来查看一下容器的网络设备:
1417438-20180615141227496-147928259.jpg
可以看到这里有个eth0,这就是容器创建时docker守护进程分配给容器的网络接口,用来连接docker0的,使容器在后台运行ctrl+P+Q,然后查看一下docker0上的情况。
1417438-20180615141234672-1858241473.jpg
可以看到interfaces(接口)下面多出了一个veth149ef6,这就是centos容器eth0的对端设备,用来将centos容器和docker0虚拟网桥进行通信的网络接口设备:
1417438-20180615141247473-74709817.jpg
通过查看本机的网络设备也可以看到:
1417438-20180615141254699-718132211.jpg
观察一下可以发现,容器的ip是由docker0虚拟网桥分配的:
1417438-20180615141306282-1894761370.jpg
1417438-20180615141313752-709800605.jpg
那么是不是可以更改网桥的ip呢?当然是可以的。
1417438-20180615141322373-1908627132.jpg
通过ifconfig docker0 192.168.1.1 netmask 255.255.255.0命令将docker0的ip地址更改为了192.168.1.1,来验证一下:
1417438-20180615141342967-801713930.jpg
但是这是临时修改,重启docker服务之后ip地址就会变回去。
这时再启动容器就会发现容器的IP变为192.168.1.0网段。

转载于:https://www.cnblogs.com/Timesi/p/9287024.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值