数字化 IT 从业者知识体系 | 应用部署与管理 —— 容器技术

容器技术是一种标准的软件单元,用于打包代码及其所有依赖项,从而使应用程序能够在不同计算环境之间快速可靠地运行。

容器技术的发展历程如下:

数字化 IT 从业者知识体系 | 应用部署与管理 —— 容器技术

技术萌芽期

容器技术的雏形可以追溯到20世纪70年代末。1979年至2012年间,诸如Chroot、Jail/zone、Openvz、cGroup和LXC等资源隔离和控制技术的开发标志着虚拟化和容器技术的开端。

Chroot(1979年)在20世纪70年代,计算资源稀缺,快速销毁和重建基础设施以解决测试环境污染问题几乎不可能。为了隔离出供软件构建和测试的环境,chroot(change root)系统调用程序应运而生。在1979年的Unix V7开发过程中,chroot系统调用正式引入,为每个进程提供独立的磁盘空间,将进程及其子进程的根目录改变到文件系统中的新位置,使这些进程只能访问该目录。这个隔离出来的新环境被称为Chroot Jail,标志着进程隔离的开始。

Jail/zone(2000年)2000年,FreeBSD操作系统发布了FreeBSD Jails隔离环境,真正实现了进程的沙箱化。这增加了对文件系统、用户和网络等的隔离,实现了客户服务之间的隔离和管理。FreeBSD Jails通过操作系统级别的隔离和限制能力实现沙箱化,而非硬件虚拟化技术。管理员可以将FreeBSD计算机系统划分为多个独立的小系统,称为“jails”,并为每个系统分配IP地址,进行软件安装和配置的定制。

Openvz(2005年)Openvz(Open Virtuzzo)是Linux操作系统级虚拟化技术,通过Linux内核补丁进行虚拟化、隔离、资源管理和状态检查。操作系统级虚拟化有一些限制,因为容器共享相同的体系结构和内核版本,当客户需要不同于主机的内核版本时,这种缺点就会显现。OpenVZ容器具有一套隔离的文件系统、用户、用户组、进程树、网络、设备和IPC对象。

cGroup(2007年)Process Containers(由Google在2006年推出)旨在限制、计算和隔离一系列流程的资源使用(CPU、内存、磁盘I/O、网络)。一年后(2007年),为了避免与Linux内核上下文中的“容器”一词混淆,改名为ControlGroups,简称Cgroups,并最终合并到Linux内核2.6.24中。

LXC(2008年)Linux容器(LXC)是第一个、最完整的Linux容器管理器实现方案。2008年,通过将Cgroups的资源管理能力和Linux Namespace的视图隔离能力结合,LXC完整的容器技术出现在Linux内核中,并且可以在单个Linux内核上运行而无需任何补丁。LXC存在于liblxc库中,提供各种编程语言的API实现,包括Python3、Python2、Lua、Go、Ruby和Haskell。现在LXC项目由Canonical公司赞助并托管。

技术迸发期

数字化 IT 从业者知识体系 | 应用部署与管理 —— 容器技术

Docker(2013年)2013年,Docker开源,开启了容器化的正确方式,以应用分发和交付的理念将容器技术发展带到新高度,容器技术得到极大的接受和认可,为容器技术普及和云原生技术的发展奠定了坚实的基础。Docker的核心创新是容器镜像(docker image),一种新型的应用打包、分发和运行机制。容器镜像将应用运行环境,包括代码、依赖库、工具、资源文件和元信息等,打包成一种操作系统发行版无关的不可变更软件包。

LMCTFY(2013年)lmctfy(“Let Me Contain That For You”)是基于Linux内核cgroups功能的操作系统级虚拟化实现。它提供了与其他容器相关的Linux工具(如Docker和LXC)类似的功能。Lmctfy是Google容器工具的发行版,是受Apache许可2.0版条款约束的免费开源软件。维护者在2015年5月表示他们努力将他们的概念和抽象合并到Docker的底层库libcontainer中,因此停止了lmctfy的积极开发。

Kubernetes(2014年)2014年,Google基于内部使用的Borg系统创建了开源项目Kubernetes(简称K8s),用于解决大规模集群的容器部署、运行和管理问题。Kubernetes在容器的基础上增加了一层新的管理抽象Pod,以便更好地利用容器进行应用的功能模块切分。得益于Google在大规模集群基础设施建设的强大积累,脱胎于Borg的K8s很快成为了行业的标准应用。

Containerd(2016年)2016年3月,Docker 1.11的Docker Engine包含了containerd,Containerd向Docker提供运行容器的API,二者通过grpc进行交互,containerd最终通过runc来实际运行容器。2016年12月,Docker公司宣布将容器运行时相关的程序从docker daemon剥离出来,形成了containerd。

OCI/CRI/CNI(2015年起)Google带头成立了Cloud Native Computing Foundation(CNCF),旨在“构建云原生计算——一种围绕着微服务、容器和应用动态调度的、以基础设施为中心的架构,并促进其广泛使用”。通过CNCF基金会,众多技术厂商一起制定了一些列行业实施标准,包括与容器相关的最为重要的几个规范,例如CRI、CNI、CSI、OCI Distribution Spec、OCI Image Spec、OCI Runtime Spec和Shimv2。

Kata Containers(2017年)容器技术通过共享内核导致资源隔离不彻底而引发的安全问题得到业界越来越多的关注和担忧,为“安全”而生的Kata容器技术应运而生。Kata Containers是一个Novel实现的轻量虚拟机,可以无缝地与容器生态系统进行集成。Kata Containers项目的主要目标是将虚拟化的安全隔离优势和容器的快速启动特点结合起来。Kata Containers让每个容器/pod采用其单独的内核,运行在一个轻量级的虚拟机中。由于每个容器/pod现在都运行在专属虚拟机中,恶意代码无法再利用共享内核来访问邻近的容器。

商用探索期

Tencent TKE/EKS TKE是PHP中文网推出的托管容器服务,可以在云中和本地运行和扩展Kubernetes应用程序。

AWS ECS/EKS EKS是亚马逊云服务推出的托管容器服务,可以在云中和本地运行和扩展Kubernetes应用程序。

Google GKE GKE是谷歌推出的托管容器服务,可以在云中和本地运行和扩展Kubernetes应用程序。

Microsoft AKS AKS是微软Azure推出的托管容器服务,可以在云中和本地运行和扩展Kubernetes应用程序。

Alibaba ACK ACK是阿里云推出的托管容器服务,可以在云中和本地运行和扩展Kubernetes应用程序。

Huawei CCE CCE是华为云推出的托管容器服务,可以在云中和本地运行和扩展Kubernetes应用程序。

商用扩展器

AWS Outposts AWS推出的混合云管理平台。

Google Anthos Google推出的混合云管理平台。

Azure Arc 微软推出的混合云管理凭条。

Linux虚拟化技术

Linux Cgroup Cgroup是Control Groups的简称,直译为控制组,主要用于资源控制,限制和隔离一组进程(Process Groups)对系统资源(如CPU、Memory、I/O等)的使用。其原理是将一组进程放在一个控制组里,通过给这个控制组分配指定的可用资源,达到控制这一组进程可用资源的目的。从实现的角度来看,Cgroup实现了一个通用的进程分组的架构,而不同资源的具体管理则是由各个Cgroup子系统实现的。

数字化 IT 从业者知识体系 | 应用部署与管理 —— 容器技术

Cgroup的特点包括:Cgroup的API以一个伪文件系统的实现方式,用户的程序可以通过文件系统实现Cgroup的组件管理;Cgroup的组件管理操作单元可以细粒度到线程级别,另外用户可以创建和销毁Cgroup,从而实现资源的分配和再利用;所有资源管理的功能都以子系统的方式实现,接口统一,子任务创建之初与其父任务处于同一个Cgroup的控制组。

Cgroup的功能包括:资源限制,可以对任务使用的资源总额进行限制;优先级分配,通过分配的CPU时间片数量以及磁盘IO带宽大小,实际上相当于控制了任务运行优先级;资源统计,可以统计系统的资源使用量,如CPU时长、内存用量等;任务控制,Cgroup可以对任务执行挂起、恢复等操作。

Linux Namespace Namespace是Linux内核用来隔离内核资源的方式。通过Namespace可以让同一Namespace中的进程相互可见,不同Namespace中的资源互相不可见。Linux Namespaces是对全局系统资源的一种封装隔离,使得处于不同Namespace的进程拥有独立的全局系统资源,改变一个Namespace中的系统资源只会影响当前Namespace里的进程,对其他Namespace中的进程没有影响。

数字化 IT 从业者知识体系 | 应用部署与管理 —— 容器技术

Docker通过Namespace和Cgroup这两个技术实现了用户从Linux系统的Namespace,到Namespace其他能力的范围圈定,再到具体能力的实现,Cgroup将整体结合起来,使Docker的实现成为可能。

数字化 IT 从业者知识体系 | 应用部署与管理 —— 容器技术

《数字化 IT 从业者知识体系》背景

数字化和可持续发展是中国企业未来发展的两大主题,掌握数字化知识,具备数字化能力,应用数字化技术是我们IT从业者未来核心竞争力所在。《数字化 IT 从业者知识体系》的初衷是为IT从业者提供系统性的数字化知识体系,内容涵盖管理实践、工程实践、技术实践三个层次,涉及软件开发方法、应用技术架构、应用部署与管理、软件交付与协作四大方面。

在接下来的《数字化 IT 从业者知识体系》系列文章中,何文强将从软件开发方法、应用技术架构、应用部署与管理、软件交付与协作四个方面,为大家进行逐一分享介绍:

软件开发方法主要包括瀑布、敏捷、精益等;应用技术架构主要包括微服务架构、服务网格架构、无服务器架构、分布式多运行架构等;应用部署与管理主要包括但不限于虚拟化技术、容器技术与容器编排等;软件交付与协作主要包括但不限于CMMI、ITIL、DevOps等。

相信该知识体系有利于IT从业者构建丰富的技术体系、全面的技术视野和系统的能力建设。欢迎大家前往《数字化 IT 从业者知识体系》话题进行详细阅读。

以上就是数字化 IT 从业者知识体系 | 应用部署与管理 —— 容器技术的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/34046.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
linux安装xmind
上一篇 2026年10月16日 00:19:53
Sora如何生成超长一分钟视频_Sora模型高级参数设置猜想
下一篇 2025年11月28日 19:07:35

相关推荐

  • linux安装xmind

    linux安装xmindlinux安装xmindlinux安装xmindlinux安装xmind

    下面给大家介绍linux安装xmind的方法,希望对需要的朋友有所帮助,更多linux使用教程可直接访问linux视频教程进行学习! linux安装xmind 1.下载xmind 百度,官网下载xmind linux版本 2.解压到安装目录 我的安装目录是/opt/xmind-8-linux 3.安…

    2026年10月16日 • 用户投稿
    000
  • Linux和Ubuntu的区别与联系

    Linux和Ubuntu的区别与联系Linux和Ubuntu的区别与联系Linux和Ubuntu的区别与联系Linux和Ubuntu的区别与联系

    下面给大家介绍linux和ubuntu的区别与联系,希望对需要的朋友有所帮助,更多linux使用教程可直接访问linux视频教程进行学习! Linux和Ubuntu : 大家经常会说Linux操作系统,Ubuntu操作系统,这种叫法是不正确的,严格意义上讲,Linux并不是操作系统,而是属于操作系统…

    2026年10月16日 • 用户投稿
    000
  • 玛莎拉蒂MC20创下318 km/h无人驾驶新纪录 团队来自大学

    玛莎拉蒂MC20创下318 km/h无人驾驶新纪录 团队来自大学玛莎拉蒂MC20创下318 km/h无人驾驶新纪录 团队来自大学玛莎拉蒂MC20创下318 km/h无人驾驶新纪录 团队来自大学玛莎拉蒂MC20创下318 km/h无人驾驶新纪录 团队来自大学

    自动驾驶技术再创里程碑:玛莎拉蒂mc20以318km/h刷新无人驾驶速度纪录! 来画数字人直播 来画数字人自动化直播,无需请真人主播,即可实现24小时直播,无缝衔接各大直播平台。 0 查看详情 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ …

    2026年10月16日 • 用户投稿
    100
  • ThinkPHP的跨域问题怎么解决?ThinkPHP如何设置CORS头?

    ThinkPHP的跨域问题怎么解决?ThinkPHP如何设置CORS头?ThinkPHP的跨域问题怎么解决?ThinkPHP如何设置CORS头?ThinkPHP的跨域问题怎么解决?ThinkPHP如何设置CORS头?ThinkPHP的跨域问题怎么解决?ThinkPHP如何设置CORS头?

    解决thinkphp跨域问题的核心是设置access-control-allow-origin、access-control-allow-methods和access-control-allow-headers响应头;2. 推荐创建cors中间件并在app/middleware.php中注册为全局中…

    2026年10月15日 • 用户投稿
    100
  • Win10系统苹果手机恢复固件时出现3194错误应该怎样操作?

    Win10系统苹果手机恢复固件时出现3194错误应该怎样操作?Win10系统苹果手机恢复固件时出现3194错误应该怎样操作?Win10系统苹果手机恢复固件时出现3194错误应该怎样操作?Win10系统苹果手机恢复固件时出现3194错误应该怎样操作?

    经常有使用win10系统的用户反馈称,当他们尝试用苹果手机恢复固件时,会遇到3194错误,从而导致恢复失败的问题,这让他们感到十分困扰。那么,针对win10系统下苹果手机在恢复固件过程中出现3194错误的情况,该如何解决呢? 解决步骤如下: 1、按下Win键加上X键,从弹出的菜单中选择命令提示符(以…

    2026年10月15日 • 用户投稿
    000
  • Postman测试接口报错未登录,但浏览器正常访问是什么原因?

    Postman测试接口报错未登录,但浏览器正常访问是什么原因?Postman测试接口报错未登录,但浏览器正常访问是什么原因?Postman测试接口报错未登录,但浏览器正常访问是什么原因?Postman测试接口报错未登录,但浏览器正常访问是什么原因?

    Postman测试失败:浏览器正常访问,Postman提示未登录的常见原因及解决方法 在浏览器中可以正常访问的接口,使用Postman测试时却提示未登录,这通常是由于Postman与浏览器处理身份验证方式的差异导致的。以下是一些可能的原因和对应的解决方法: 1. Cookie管理差异: 浏览器通常会…

    2026年10月15日 • 用户投稿
    100
  • 如何解决PrestaShop中丢失页面的统计问题?使用pagesnotfound模块可以!

    可以通过一下地址学习composer:学习地址 在使用 prestashop 开发电商网站时,我发现了一个有趣但棘手的问题:用户常常会访问一些不存在的页面。这些丢失的页面请求如果得不到有效统计和分析,不仅会影响网站的用户体验,还会对seo优化造成负面影响。我尝试了多种方法来解决这个问题,最终通过安装…

    2026年10月15日
    200
  • 如何快速绘制令人惊艳的手绘风格图表?

    如何快速绘制令人惊艳的手绘风格图表?如何快速绘制令人惊艳的手绘风格图表?如何快速绘制令人惊艳的手绘风格图表?如何快速绘制令人惊艳的手绘风格图表?

    轻松绘制令人惊艳的手绘风格图表 您是否也为那些兼具美感和随意性的手绘风格图表所倾倒?它们不同于精确的电脑绘图,却能以独特的魅力传达信息,引发共鸣。 想知道如何创作出这样的图表吗?请看下图示例: [此处应插入问题中提供的图片,由于无法直接插入图片,请读者自行脑补三张手绘风格图表] 图像转图像AI 利用…

    2026年10月15日 • 用户投稿
    100
  • 施耐德电气:当AI进入产业主场 核心技术+场景知识带来价值最大化

    施耐德电气:当AI进入产业主场  核心技术+场景知识带来价值最大化施耐德电气:当AI进入产业主场  核心技术+场景知识带来价值最大化施耐德电气:当AI进入产业主场  核心技术+场景知识带来价值最大化施耐德电气:当AI进入产业主场  核心技术+场景知识带来价值最大化

    当大模型的热议逐渐趋于冷静,企业的关注重心已悄然转向ai如何真正实现落地,成为提升产业效率、推动绿色变革以及重塑商业模式的核心驱动力。在2025世界人工智能大会(waic)期间,关于ai如何深度融入产业、释放实际价值的探讨更是达到了新的高潮。 当前,实现AI规模化应用的关键,在于突破三大核心挑战:如…

    2026年10月15日 • 用户投稿
    200
  • 生物版DeepSeek的隐秘竞争,中国模型被视为更强对手,赛诺菲10亿美金押宝!

    生物版DeepSeek的隐秘竞争,中国模型被视为更强对手,赛诺菲10亿美金押宝!生物版DeepSeek的隐秘竞争,中国模型被视为更强对手,赛诺菲10亿美金押宝!生物版DeepSeek的隐秘竞争,中国模型被视为更强对手,赛诺菲10亿美金押宝!生物版DeepSeek的隐秘竞争,中国模型被视为更强对手,赛诺菲10亿美金押宝!

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 中国AI力量领跑全球:百图生科xTrimo V3生物大模型超越Evo2 斯坦福大学与英伟达联合发布的Evo2生物学AI模型引发热议,然而,其论文中的一处细节却凸显了中国AI的崛起:百图生科的xT…

    2026年10月15日 • 用户投稿
    200
  • Linux 系统管理总结

    Linux 系统管理总结Linux 系统管理总结Linux 系统管理总结Linux 系统管理总结

    1,什么是进程? 进程是正在执行的一个程序或者命令,每一个进程都是一个运行实体,都有自己的地址空间,并占用一定的系统资源。 推荐:《Linux教程》 2,进程管理作用? 判断服务器健康状态 产看系统中所有的进程 杀死进程 == 查看进程命令 == ps 命令行结果说明 top top 命令结果 第一…

    2026年10月15日 • 用户投稿
    100
  • Android Studio ndk-build报错怎么办?

    Android Studio ndk-build报错怎么办?Android Studio ndk-build报错怎么办?Android Studio ndk-build报错怎么办?Android Studio ndk-build报错怎么办?

    Android Studio NDK 编译问题排查指南 在使用 Android Studio (AS) 进行原生代码 (C/C++) 开发时,ndk-build 常常会遇到各种编译错误。本文将帮助您快速定位并解决这些问题。 如上图所示,ndk-build 编译失败可能由以下原因导致: X Studi…

    2026年10月15日 • 用户投稿
    100
  • ThinkPHP的第三方登录怎么实现?ThinkPHP如何集成OAuth?

    ThinkPHP的第三方登录怎么实现?ThinkPHP如何集成OAuth?ThinkPHP的第三方登录怎么实现?ThinkPHP如何集成OAuth?ThinkPHP的第三方登录怎么实现?ThinkPHP如何集成OAuth?ThinkPHP的第三方登录怎么实现?ThinkPHP如何集成OAuth?

    thinkphp实现第三方登录的核心是oauth协议,通过微信、qq等平台的sdk获取appid和appsecret,并配置回调地址;2. 将sdk引入项目后,在controller中编写授权跳转和回调处理代码,利用socialite等工具获取用户信息并存入数据库;3. 安全性通过state参数防c…

    2026年10月15日 • 用户投稿
    100
  • ping IP/域名时TTL值代表什么?

    ping IP/域名时TTL值代表什么?ping IP/域名时TTL值代表什么?ping IP/域名时TTL值代表什么?ping IP/域名时TTL值代表什么?

    一个夜黑风高的晚上,一位同学来找我,说他的网络延迟非常高,实际上他是对ping ip/域名时看到的ttl值大小产生了疑问,误以为ttl值的大小代表了网络质量。那么,让我们具体了解一下什么是ttl吧。 TTL(Time To Live,存活时间)是计算机网络技术中的一个术语,指一个数据包在经过一个路由…

    2026年10月15日 • 用户投稿
    100
  • 俄罗斯引擎搜索入口网直接登录 俄罗斯引擎登录入口网页版

    俄罗斯引擎搜索入口网直接登录 俄罗斯引擎登录入口网页版俄罗斯引擎搜索入口网直接登录 俄罗斯引擎登录入口网页版俄罗斯引擎搜索入口网直接登录 俄罗斯引擎登录入口网页版俄罗斯引擎搜索入口网直接登录 俄罗斯引擎登录入口网页版

    Yandex(Яндекс)是俄罗斯市场占有率最高的搜索引擎,被广泛誉为“俄罗斯的谷歌”。对于希望查找俄语资料、了解俄罗斯市场或体验本土化互联网服务的用户来说,Yandex是首选的入口。本文将为您提供Yandex的官方直接入口,并介绍其核心功能与使用方法。 1、立即进入“俄罗斯引擎搜索入口网直接登录…

    2026年10月15日 • 用户投稿
    100
  • 如何快速绘制出美观又随性的手绘风格图表?

    如何快速绘制出美观又随性的手绘风格图表?如何快速绘制出美观又随性的手绘风格图表?如何快速绘制出美观又随性的手绘风格图表?如何快速绘制出美观又随性的手绘风格图表?

    解锁手绘图表绘制技巧,告别呆板图表! 您是否也曾被那些美观又充满个性的手绘风格图表所吸引?它们是如何绘制的呢?本文将揭秘这种图表绘制的秘密,带您轻松掌握技巧。 示例图表风格特点:线条流畅自然,略带手绘的粗糙质感,整体轻松活泼,却又赏心悦目。这种风格并非依赖专业绘图软件的精细绘制,而是追求快速便捷的手…

    2026年10月15日 • 用户投稿
    200
  • 如何解决PrestaShop中搜索统计的问题?使用statssearch模块可以!

    可以通过以下地址学习Composer:学习地址 在使用prestashop搭建电商平台时,了解用户的搜索行为是提升用户体验和优化产品展示的重要手段。然而,我在实际操作中遇到了一些挑战:如何有效地收集和分析用户搜索关键词的数据?经过一番探索,我找到了prestashop的statssearch模块,它…

    2026年10月15日
    100
  • 如何解决PrestaShop后台统计数据的需求?使用Composer安装statsnewsletter模块可以!

    可以通过一下地址学习composer:学习地址 在使用prestashop搭建电商网站的过程中,我遇到了一个需求:我想在后台统计中展示一个关于用户注册简讯的图表。这不仅能让我更直观地了解用户的订阅情况,还能帮助我制定更有针对性的营销策略。然而,prestashop的默认功能并不能直接满足这个需求,我…

    2026年10月15日
    100
  • SpringBoot集成Postman测试时,Cookie已复制却提示未登录,该如何排查?

    SpringBoot集成Postman测试时,Cookie已复制却提示未登录,该如何排查?SpringBoot集成Postman测试时,Cookie已复制却提示未登录,该如何排查?SpringBoot集成Postman测试时,Cookie已复制却提示未登录,该如何排查?SpringBoot集成Postman测试时,Cookie已复制却提示未登录,该如何排查?

    SpringBoot项目使用Postman测试时,即使已复制Cookie,仍然提示未登录,该如何排查? 问题描述: 在SpringBoot后端开发中,使用Postman进行测试时,即使已正确复制Cookie,仍然出现未登录的错误提示。 问题分析: 此问题通常由以下几个方面引起: 接口不一致:Post…

    2026年10月15日 • 用户投稿
    100
  • 俄罗斯搜索引擎免费入口无需登录网站 俄罗斯搜索引擎x无需登录

    俄罗斯搜索引擎免费入口无需登录网站 俄罗斯搜索引擎x无需登录俄罗斯搜索引擎免费入口无需登录网站 俄罗斯搜索引擎x无需登录俄罗斯搜索引擎免费入口无需登录网站 俄罗斯搜索引擎x无需登录俄罗斯搜索引擎免费入口无需登录网站 俄罗斯搜索引擎x无需登录

    Yandex作为俄罗斯市场占有率最高的搜索引擎,为全球用户提供了一个了解东欧视角、获取俄语区资讯的绝佳窗口。本文将直接为您提供Yandex的官方免费入口,并指导您如何无需任何注册和登录,即可轻松使用其强大的搜索功能,探索一个不一样的网络世界。 1、立即进入“俄罗斯搜索引擎免费入口无需登录网站☜☜☜☜…

    2026年10月15日 • 用户投稿
    100

发表回复

登录后才能评论
关注微信