-Docker网络

简介: Docker网络通过虚拟网桥docker0实现容器间通信与隔离。默认采用bridge模式,为容器分配IP并连接至docker0网桥,支持通过服务名互访。借助Linux namespace和cgroup特性实现网络隔离,提供bridge、host、none、container四种网络模式,灵活满足不同场景需求。

3-Docker网络
Docker 网络
docker安装并启动服务后,会在宿主机中添加一个虚拟网卡。
在Docker服务启动前,使用 ifconfig 或 ip addr 查看网卡信息:
ens33或eth0:本机网卡
lo:本机回环网络网卡
可能有virbr0(CentOS安装时如果选择的有相关虚拟化服务,就会多一个以网桥连接的私网地址的virbr0网卡,作用是为连接虚拟网卡提供NAT访问外网的功能。如果要移除该服务,可以使用 yum remove libvirt-libs.x86_64)
使用 systemctl start docker启动Docker服务后,会多出一个 docker0 网卡。
作用:
容器间的互联和通信以及端口映射
容器IP变动时候可以通过服务名直接网络通信而不受到影响
Docker容器的网络隔离,是通过Linux内核特性 namespace和 cgroup 实现的。
docker网络命令
查看Docker网络模式:
如果没有修改过docker network,则默认有3个网络模式:
bridge
host
none
添加Docker网络:
删除Docker网络:
查看网络元数据:
删除所有无效的网络:
Docker 网络模式
Docker 的网络模式:
网络模式
简介
使用方式
bridge
为每一个容器分配、设置IP等,并将容器连接到一个docker0
虚拟网桥,默认为该模式
--network bridge
host
容器将不会虚拟出自己的网卡、配置自己的IP等,而是使用宿主机的IP和端口
--network host
none
容器有独立的 Network namespace,但并没有对齐进行任何网络设置,如分配 veth pari
和 网桥连接、IP等
--network none
container
新创建的容器不会创建自己的网卡和配置自己的IP,而是和一个指定的容器共享IP、端口范围等
--network container:NAME或者容器ID
查看某个容器的网络模式:
Shell
运行代码
复制代码
1
2

通过inspect获取容器信息,最后20行即为容器的网络模式信息

docker inspect 容器ID | tail -n 20
docker0
Docker 服务默认会创建一个docker0网桥(其上有一个docker0内部接口),该桥接网络的名称为 docker0,它在内核层连通了其他的物理或虚拟网卡,这就将所有容器和本地主机都放到同一个物理网络。
Docker默认指定了docker0接口的IP地址和子网掩码,让主机和容器之间可以通过网桥互相通信。
查看bridge网络的详细信息,并通过grep获取名称:
Shell
运行代码
复制代码
1
docker network inspect bridge | grep name
可以看到其名称为docker0。
bridge模式
Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址,称为Container-IP,同时Docker网桥是每个容器的默认网关。因为在同一个宿主机内的容器接入同一个网桥,这样容器之间就能够通过容器的Container-IP直接通信。
docker run的时候,没有指定--network的话,默认使用的网桥模式就是bridge,使用的就是docker0。在宿主机ifconfig就可以看到docker0和自己create的network。
网桥docker0创建一对对等虚拟设备接口,一个叫veth,另一个叫eth0,成对匹配:
整个宿主机的网桥模式都是docker0,类似一个交换机有一堆接口,每个接口叫 veth,在本地主机和容器内分别创建一个虚拟接口,并让他们彼此联通(这样一对接口叫做 veth pair)。
每个容器实例内部也有一块网卡,容器内的网卡接口叫做eth0。
docker0上面的每个veth匹配某个容器实例内部的eth0,两两配对,一一匹配。

相关文章
|
1天前
|
存储 算法 搜索推荐
线性结构检索:从数组和链表的原理初窥检索本质
本节深入解析数组与链表的存储特性及其对检索效率的影响。数组支持随机访问,适合二分查找,检索效率为O(log n);链表虽检索较慢,但插入删除高效,适用于频繁动态调整场景。通过改造链表结构,如结合数组提升检索性能,揭示了数据组织方式对检索的核心作用,帮助理解“快速缩小查询范围”这一检索本质。
|
1天前
|
存储 算法 Java
链表(链式存储)基本原理
链表是一种通过指针串联节点的线性结构,无需连续内存,支持高效增删。单链表仅有next指针,双链表增加prev指针以支持双向遍历。相比数组,链表插入删除灵活,无扩容负担,但不支持随机访问,查找需从头遍历。实际开发中常用双链表,配合虚拟头结点简化操作。
|
1天前
|
网络协议 算法 前端开发
架构设计:设计一个灵活的 RPC 框架
本讲深入讲解如何设计一个灵活的 RPC 框架,从传输、协议、引导到服务发现与治理,构建四层架构体系,并引入插件化设计提升可扩展性,实现高内聚、低耦合、易维护的微内核架构,助力系统应对持续变化的业务需求。(238字)
|
1天前
|
缓存 网络协议 关系型数据库
核心原理:能否画张图解释下 RPC 的通信流程
RPC(远程过程调用)是一种实现分布式系统间透明通信的技术,屏蔽网络细节,让调用远程服务如同调用本地方法。其核心流程包括:参数序列化、网络传输、协议解析、反序列化及动态代理拦截,通过TCP传输确保可靠性,广泛应用于微服务、缓存、消息队列等场景,是现代应用架构的“经络”。
|
1天前
|
存储 缓存 负载均衡
服务发现:到底是要 CP 还是 AP?
本文探讨RPC框架中服务发现的CP与AP选择问题。在超大规模集群下,基于ZooKeeper的强一致(CP)方案因性能瓶颈易导致宕机,而最终一致(AP)方案通过消息总线实现数据同步,兼顾性能与稳定性,更适用于高可用、低延迟的服务发现场景。
|
8天前
|
弹性计算 容灾 Linux
阿里云服务器购买入口省钱链接:共3中方法,第一种更优惠
阿里云服务器购买有3种方式:活动机(38元/年起)、自定义配置和快速购买。活动机最优惠,适合追求性价比的用户;自定义灵活但复杂;快速购买适合新手。2025年最新流程已更新,助您轻松上云。
92 12
|
2月前
|
负载均衡 Java API
《服务治理》RPC详解与实践
RPC是微服务架构的核心技术,实现高效远程调用,具备位置透明、协议统一、高性能及完善的服务治理能力。本文深入讲解Dubbo实践,涵盖架构原理、高级特性、服务治理与生产最佳实践,助力构建稳定可扩展的分布式系统。(238字)
|
2月前
|
安全 数据管理 测试技术
告别蛮力:让测试数据生成变得智能而高效
告别蛮力:让测试数据生成变得智能而高效
387 120
|
8天前
|
数据采集 弹性计算 供应链
包年包月、按量付费和抢占式实例有什么区别?阿里云ECS付费类型如何选择?
阿里云ECS提供三种付费模式:包年包月适合长期稳定使用,价格优惠且支持备案;按量付费按小时计费,灵活但成本较高,适合短期或突发业务;抢占式实例价格低至1折,但可能被释放,仅推荐用于无状态应用。根据业务需求选择合适模式可优化成本与稳定性。
64 20