首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Docker网络的基本原理

Docker网络的基本原理

作者头像
用户5921339
发布2025-05-20 16:21:50
发布2025-05-20 16:21:50
1650
举报

Docker网络基本类型

按照docker官方的说法,docker容器有5种网络类型:

  1. bridge,--net=bridge(默认,可省略) Docker容器的默认网卡驱动,通过虚拟网络docker0实现网络通信。
  2. host,--net=host 共享宿主机网络名称空间,使用宿主机的IP地址和端口。
  3. none,--net=none 这种类型比较特殊,虽然会为容器创建单独的网络名称空间,但是不会对网络做任何配置(如分配veth pair、IP地址等),只有一个lo接口。
  4. container,--net container: container_ID | _Name container是另一种比较特别的网络类型,新运行的docker容器会共享指定容器的网络协议栈,包括IP地址和端口。除了网络名称空间,其他如文件系统、进程等仍然是隔离的。
  5. 用户自定义 这是在Docker1.9版本以后新增的特性,允许容器使用第三方插件或驱动(如bridge、overlay、macvlan等)创建单独的网络。

Docker网络基本介绍

Docker对Linux内核有较强的依赖性,其主要使用了以下与Linux有关的技术:

Docker默认工作在bridge模式下,接下来主要介绍bridge模式下Docker是如何支持网络运行的。

在bridge模式下,Docker守护进程首次启动时会创建一个虚拟网桥也就是docker0,并按照RFC1918模型,在当前网络名称空间(默认root)中为docker0分配一个子网(默认172.17.0.1/16)。Docker在创建容器的同时,会创建一个虚拟的以太网设备(Veth Pair),其中一端使用Linux的网络名称空间技术,映射到容器内的虚拟网卡eth0,然后在网桥地址段为其分配一个IP地址,另一端则直接关联到网桥docker0上。

其实在创建docker0网桥的时候,Linux系统中就添加了相应的iptables规则,主要记录在nat和filter表中,这些iptables规则是容器与容器以及容器与宿主机之间实现网络通信的前提,另外为了实现数据包的转发还需修改Linux内核参数:net.ipv4.ip_forward = 1。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-07-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT人家 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档