码迷,mamicode.com
首页 > 其他好文 > 详细

docker 网络 实现

时间:2018-12-31 13:55:56      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:共享网络   bubuko   mes   ble   没有   none   通信   brctl   names   

最近在学习docker网络相关的知识,关于网络这块儿记下来,以便review

dokcer安装完成之后默认提供三种网络  bridge host none  docker默认使用bridge

技术分享图片

 

bridge在物理机之上创建一个软交换机 docker0  同事也可以当网卡使用 给予IP

技术分享图片

启动容器的时候会给容器赋予一个网卡一个IP,同时在交换机上给另一个IP,一个网卡

技术分享图片

yum -y bridge-utils

技术分享图片

 

使用brctl show 可以看到docker0 上面的网卡的接口,目前有两个,因为启动了两个docker

技术分享图片

 

 技术分享图片

这幅图我们能发现这个接口对应了if38 if 50 那么这个if38 if50 没有显示出来是因为这一半在容器中

 

在docker里面找到对应的另一半

技术分享图片

 

 

docker0 桥默认是个nat桥 ,没生成一个容器之后 都会生成iptables规则如下:

技术分享图片

任何接口进来只要不是到达docker0的地址,都需要作伪装

 

第一种 桥接网络模式,如果外部主机想要访问本机的一个docker,只有使用SNAT,D

NAT方式实现。  在主机的网卡上做端口的映射。

容器是由USER MOUNT Pid UTS Net IPC六个独立的名称空间组成  namespace资源隔离  cgroup资源划分

第二种 :技术分享图片通过左图方式能使多个容器共用一个网络接口 也就是一个lo通信,联盟式网络

 

 

第三种:host 让容器使用宿主机的namespace,就拥有了管理主机的网络权力,是第三种的衍生,第三种是2个docker共享网络资源,使得2个docker内部程序可以通过lo直接通信

 第四种  none 使得容器成为一个孤岛 只处理自己的程序

 可以通过docker network inspect bridge 查看 bridge网络的默认配置

docker container inspect XX技术分享图片

 

docker 网络 实现

标签:共享网络   bubuko   mes   ble   没有   none   通信   brctl   names   

原文地址:https://www.cnblogs.com/ZFBG/p/10201855.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!