烟波刀客
作者烟波刀客·2023-06-21 09:43
运维·建筑

Docker网络

字数 647阅读 634评论 0赞 1

docker 网络

网络是程序通信的媒介,是计算机的基石。docker以进程为基础,引入namespace隔离资源、依靠unionfs挂载镜像、调用cgroup限制资源,以此实现了应用的轻量性和隔离性。应用需要通信,通信便依赖网络,因此docker网络是docker提供正常服务的基础。

docker中网络术语

1.network namespace(命名空间):为了隔离网络资源(内核协议栈),引入network namespace隔离内核协议栈的全局变量。本质就是调用内核函数时,加入network namespace这个参数。
2.Veth: 为了两个内核协议栈之间通信,设计了veth 连接两个内核协议栈。veth设备是一对,一端直接(不会将数据封装成帧再发,而是封三层,传输效率高)将数据发送到另一端 ,并触发另一端的接收操作。
3.网桥:为了连接多个内核协议栈之间的通信,设计了虚拟网桥。一般使用veth设备,连接网桥,通过网桥中转到不同的内核协议栈。
4.Iptables设备:为了满足数据流转的用户可控,引入了iptables。通过netfilter控制数据包流转的网络接口。

docker的网络模式

1.host模式: 容器和宿主机共享一个内核协议栈,容器不会虚拟出自己的网卡、ip、端口。
2.container模式: 一些容器共享内核协议栈。k8s中的pod便是如此。
3.none模式: 有自己的内核协议栈,但不做网络设置
4.bridge模式: 通过Docker0连接开启了此模式的容器。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

1

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

  • zabbix监控
    评论 0 · 赞 2
  • 负载均衡-haproxy
    评论 0 · 赞 1
  • 高可用
    评论 0 · 赞 0
  • k8s基本概念
    评论 0 · 赞 0
  • 相关文章

    相关问题

    相关资料

    X社区推广