Docker 网络

网络


可以看到支持很多网络模式

Null(--net=None) 启动一个容器但是不配置网络

  • 把容器放入独立的网络空间但不做任何网络配置;
  • 用户需要通过运行 docker network 命令来完成网络配置。
Host  容器没有独立的网络namespace,复用主机的网络,这样会导致端口冲突
  • 使用主机网络名空间,复用主机网络。

Container

  • 重用其他容器的网络。 

Briage(--net=bridge)

  • 使用 Linux 网桥和 iptables 提供容器互联,Docker 在每台主机上创建一个名叫 docker0的网桥,通过 veth pair 来连接该主机的每一个 EndPoint。

独立的网络namespace需要独立的网路配置,所以要发布一个服务,需要解决哪些问题?

  1. 容器里面的网络如何配置
  2. 容器网络和主机网络如何互通
  3. 容器网络如何和外面的世界互通

 

 

跨主机网络


 

 

 

Null 模式


 如果不让docker去配置网络,自己去配置应该怎么配置

先建立容器的网络的namespace,并且将容器进程和这个网络namespace绑定,这是前面三条命令的目的。

接下来通过在Linux里面ip link建立一些网络的链接,虚拟以太网卡veth,这种设备是什么意思呢?

可以将其理解为虚拟网线,这条虚拟网线会有两个口,一边为A,一边为B。这些口的特性是A口进去的数据从B口就可以收到,从B口进去的数据,从A口就可以收到。

下面做的事情就是将其中一个口插到主机的brider上面,另外一个口塞到刚刚容器的网络namespace里面,并且为这个网口配置网络。通过这种方式就连通了主机网络和容器网络。

 

 

Docker优势


 union fs一大优势镜像层是可以复用的,如果多个镜像都依赖于centos镜像,那么只需要维护一份镜像的副本就行了。

因为分层的结构,推送也是增量的,当有一个应用构建了镜像叫v1版本,过一段时间要做v2版本的升级,里面可能只是一个binary二进制文件换了,在做推送的时候,在push的时候发现底层镜像没有变更,就不需要全量推送和拉取了,通过增量的方式将文件分发一次。这样减少了网络带宽。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值