2024年最全完全掌握docker容器化的技术栈说明(2)

Docker中的虚拟网络是指通过 Docker 网络驱动程序创建的虚拟网络,用于连接 Docker 容器以及与外部网络通信。Docker提供了多种网络驱动程序,如bridge、overlay、macvlan等,可以实现容器间的通信、容器与宿主机或外部网络的通信,并支持网络隔离、网络安全等功能。这些虚拟网络可以帮助用户灵活管理和配置容器之间的通信和网络访问。

– 网络命名空间

网络命名空间是 Linux 内核提供的一种机制,用于实现网络资源隔离和管理。每个网络命名空间都拥有自己独立的网络设备、IP 地址、路由表、防火墙规则等网络相关资源,使得不同网络命名空间之间的网络配置相互隔离,互不影响。这种隔离性使得网络命名空间可以被用于创建独立的网络环境,比如容器化技术中就广泛使用网络命名空间来实现容器之间的隔离和通信。通过网络命名空间,可以有效地管理和控制不同网络实体之间的网络连接和通信。

详细介绍,请阅读《Linux系统的网络命名空间那些事》。

– 虚拟设备对veth pair

veth pair 是 Linux 内核中的一种虚拟网络设备对,通常用于连接两个网络命名空间(network namespace)。它由一对虚拟的网络接口组成,其中一个端口位于一个网络命名空间,另一个端口则位于另一个网络命名空间。这种设备对允许在不同网络命名空间中的进程进行通信,并且在容器和宿主机之间提供了网络连接的手段。veth pair 在容器化技术中被广泛使用,用于实现容器之间或容器与宿主机之间的网络通信。

–虚拟网桥

虚拟网桥是一种软件实体,用于连接多个网络接口并转发数据包。它类似于物理交换机,在计算机网络中扮演着关键的角色。虚拟网桥可以将不同网络接口(如物理网卡、虚拟网卡)连接起来,使得这些接口在同一个网络中进行通信。在容器化环境中,虚拟网桥经常被用来连接容器内部的虚拟网络,实现容器间和容器与外部网络之间的通信。通过虚拟网桥,可以实现网络通信的互联互通,并提供数据包的转发功能。

–防火墙iptables 或 firewall

iptables 是 Linux 系统上用于配置 IPv4 数据包过滤和网络地址转换的工具。它允许系统管理员定义数据包的过滤规则、网络地址转换规则以及其他网络安全功能,用于保护计算机网络免受恶意攻击和未授权访问。通过 iptables,管理员可以配置防火墙规则、网络地址转换规则(如端口转发)、数据包的策略路由等,从而有效地控制进出网络接口的数据流量。iptables 是 Linux 系统中非常强大且广泛使用的网络安全工具。

在容器网络中,iptables 扮演着重要的角色,用于管理和控制容器之间以及容器与外部网络之间的数据流量。以下是 iptables 在容器网络中的几个作用:

  1. 网络隔离:iptables 可以帮助实现容器之间的网络隔离,通过定义防火墙规则,可以限制数据包的流动,从而确保容器之间的通信是安全可靠的。
  2. 端口转发:利用 iptables 的端口转发功能,可以将外部网络请求转发到指定的容器内部服务,实现容器内部服务的对外访问。
  3. 数据包过滤:通过设置规则,可以过滤进出容器的数据包,对数据流量进行检查和控制,提高网络安全性。
  4. NAT(Network Address Translation):iptables 可用于进行网络地址转换,将容器内部 IP 地址映射为宿主机的 IP 地址,实现容器与外部网络的通信。

总的来说,iptables 在容器网络中扮演着网络安全、数据流量控制和网络地址转换等多种重要角色,帮助管理员有效管理和保护容器网络。

-虚拟磁盘

虚拟磁盘是一种由软件模拟的存储设备,通常用于虚拟化环境中。在虚拟化技术中,虚拟机或容器等虚拟化实体需要访问存储空间来存储操作系统、数据和应用程序等内容。虚拟磁盘可以被看作是一个虚拟的硬盘驱动器,它实际上是一个文件或者由软件定义的存储区域,而不是物理硬件设备。

虚拟磁盘可以具有不同的类型和格式,如 VMDK(VMware Virtual Disk)、VHD(Virtual Hard Disk)、QCOW2 等。这些虚拟磁盘文件可以被分配给虚拟机或容器,在其中存储操作系统、应用程序和数据。虚拟磁盘允许对存储空间进行灵活管理、扩展和快速备份,同时可以在不同的虚拟化环境中移植和共享。

总的来说,虚拟磁盘提供了一种方便而灵活的方式来管理虚拟化环境中的存储需求,为虚拟机和容器提供了所需的存储空间。

–联合文件系统UnionFS

UnionFS(Union File System)是一种联合文件系统,它允许将多个不同位置的文件系统(通常是只读文件系统)合并到一个单一的虚拟文件系统中。这样,用户可以像访问单个文件系统一样访问这些不同文件系统中的内容,而无需复制文件或者进行数据迁移。

UnionFS 的主要特点包括:

  1. 联合挂载:UnionFS 可以将多个文件系统联合挂载到同一个挂载点上,形成一个统一的视图。用户可以同时访问并操作这些文件系统中的内容。
  2. 分层结构:UnionFS 使用分层结构来组织不同文件系统的内容,每个文件系统都可以被看作一个层,最上层的层具有最高的优先级。当用户请求访问文件时,UnionFS 会按照层的顺序查找文件,最先找到的文件会被返回。
  3. 写时复制(Copy-on-Write):在 UnionFS 中,如果用户尝试对只读文件系统进行写操作,UnionFS 会将该文件复制到上层可写的文件系统中,以确保原始文件系统的数据不会被修改。这种写时复制机制可以防止对只读文件系统造成损坏。
  4. 轻量和高效:由于 UnionFS 只是在逻辑上合并多个文件系统,并不实际复制文件内容,因此它相对轻量且高效,适用于一些特定的应用场景,比如容器技术中的镜像叠加等。

总的来说,UnionFS 提供了一种灵活的文件系统管理方式,能够方便地整合多个文件系统,为用户提供统一且高效的文件访问体验。

—容器镜像

容器镜像是一个轻量级、独立且可执行的软件包,其中包含运行应用程序所需的一切:代码、运行时环境、系统工具、库和设置。容器镜像可以看作是一个容器的模板,可以用来创建和运行容器。

容器镜像通常由多个层(Layers)组成,每个层都包含了文件系统的一部分。这些层是只读的,并且通过联合文件系统(UnionFS)的方式堆叠在一起,形成一个完整的容器镜像。当容器启动时,这些层会被堆叠在一起,共同提供容器运行所需的文件系统环境。

容器镜像的特点包括:

  1. 轻量级:容器镜像通常很小,因为它们只包含应用程序运行所需的最小必要组件,没有多余的操作系统或软件包。
  2. 可移植性:容器镜像可以在不同的平台和环境中运行,因为其包含了所有应用程序运行所需的组件,而不依赖于特定的操作系统或硬件。
  3. 版本控制:容器镜像可以使用版本控制系统进行管理和更新,确保容器的可重复性和一致性。
  4. 快速部署:由于容器镜像是预先配置好的,可以快速部署和启动,节省了设置和配置环境的时间。

容器镜像在容器技术中扮演着非常重要的角色,它们为容器提供了一种轻量级、可移植且高效的运行环境,使得应用程序的开发、测试和部署更加简单和便捷。

4.隔离技术

Linux 的命名空间(Namespace)是一种内核特性,用于隔离系统资源的可见性,使得不同进程拥有各自独立的资源视图,从而实现资源隔离和虚拟化。通过命名空间,可以在同一系统上创建多个相互隔离的环境,每个环境都拥有自己独立的资源副本。

最后的话

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

资料预览

给大家整理的视频资料:

给大家整理的电子书资料:

如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618542503)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 29
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值