Docker 网络

网友投稿 598 2022-11-07

Docker 网络

Docker 网络

网络

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

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

把容器放入独立的网络空间但不做任何网络配置;用户需要通过运行 docker network 命令来完成网络配置。

Host  容器没有独立的网络namespace,复用主机的网络,这样会导致端口冲突

使用主机网络名空间,复用主机网络。

Container

重用其他容器的网络。

Briage(--net=bridge)

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

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

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

跨主机网络

Null 模式

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

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

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

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

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

Docker优势

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

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Service Discovery Prometheus 基于 Consul 的服务发现
下一篇:Kubernetes 应用包管理器 Helm 对应用进行管理
相关文章

 发表评论

暂时没有评论,来抢沙发吧~