linux的命名空间到底是什么,一直搞不懂

抽象概念。
看了别人的分析后,我这样写:从Linux内核版本2.6.24开始,Linux6支持不同类型的术语。
(具体不记得了)命名空间是一种轻量级的虚拟化方法;太空的空间就相当于一块大陆。
命名空间本质上构成了系统的不同方面。

深入理解linux中的namespace

深入了解Linux中的命名空间OnLinux系统;命名空间机制提供了一种轻量级的虚拟化模型,用于将有限的系统资源(如进程ID、通信资源、网络资源等)合理分配给每个用户。
这个概念类似于学校里的课程,命名空间的概念在不同的编程语言中都有体现。
例如,在C++中,通过将标准库中的所有内容引入命名空间std;您可以避免全局范围内的名称冲突,使代码更干净且更易于维护。
在Linux系统上;命名空间机制允许创建多个独立的执行环境。
每个命名空间都有自己的PID位置;文件系统从用户的角度来看,有网络集群和其他资源。
这些环境就像具有独立init进程和进程ID的独立Linux计算机。
例如,通过chroot系统调用;您可以配置一个简单的命名空间环境,并将进程限制在特定的文件系统区域。
task_struct结构中的uts_ns;ipc_ns包含指向不同名称空间实例的指针,例如mnt_ns、pid_ns等。
这些指针指向单独的命名空间实例,为进程提供不同的资源环境。
以UTS命名空间为例,它包含系统名称、版本号;设备名称等包含信息。
此信息对于理解系统架构和配置非常重要。
由交集函数,可以创建一个新的UTS命名空间,以便子进程可以在单独的UTS环境中运行。
创建新的命名空间时,您可以创建UTS命名空间的副本并使用CLONE_NEWUTS标志,该标志将使用该副本作为子进程的uts_ns实例。
这样,子进程和父进程的UTS环境相互隔离,每个进程都可以独立修改自己的UTS命名空间中的信息,而不影响其他进程。
在Linux中,同一进程可以同时拥有多个命名空间,多个进程可以共享同一个命名空间。
这种灵活性为Linux系统提供了更加精细的资源管理和隔离机制,以满足不同应用场景的需求。

当下运行容器的3个步骤|Linux中国

本文将指导您如何在一个“容器”中运行两个容器来托管WordPress网站。
容器技术对于很多人来说似乎很难理解,尤其是经验丰富的系统管理员。
那么,如何真正开始使用容器呢?如何从容器发展到Kubernetes?为什么有不止一条路径?最好的起点就是现在。
了解容器容器的起源可以追溯到BSD及其chrootJail的早期阶段,但我们已经远远超过了从Linux内核引入“控制组(cgroup)”的早期阶段。
控制组允许使用“命名空间”对进程进行“命名”。
当您将进程分组到命名空间中时,进程的行为就像命名空间之外没有其他任何东西一样,这就像将进程放入容器中一样。
这些容器实际上是虚拟的,位于计算机内部,与其余操作系统进程共享内核、内存和CPU,但它们位于容器内部。
预构建的分布式容器仅包含运其包含的应用程序所需的最少内容。
使用Podman、Docker或CRI-O等容器引擎,您可以在容器内运行应用程序,而无需进行传统安装。
容器引擎通常是跨平台的,因此即使您的容器在Linux上运行,您也可以在其他Linux、MacOS或Windows上运行该容器。
此外,当需求较高时,可以为同一应用程序运行多个容器。
运行容器在运行容器之前,必须有运行它的理由。
通过创建项目,有助于激发人们对容器创建过程的兴趣,从而激励使用正在运行的容器。
毕竟,在不使用容器提供的应用程序的情况下运行容器只能证明没有发现错误,而使用容器则证明它工作正常。
建议从WordPress开始,这是一个流行且易于使用的Web应用程序。
容器运行后,您可以测试其使用情况。
配置WordPress容器有很多选项,这可能会让您发现更多运行容器的方法,例如运行数据库容器以及容器如何相互通信。
使用Podman或Docker我推荐使用Podman,这是一个友好、方便且无恶意软件的容器引擎。
如果您没有安装Podman,您可以使用Docker命令来代替。
两者都是很棒的开源容器引擎,并且具有相同的架构(只需编写docker而不是podman)。
由于Podman没有守护进程,因此需要更多配置,但值得考虑能够运行免根和无守护程序的容器。
容器运行Pod容器在设计上是自给自足的。
在容器中运行的应用程序不应与容器外部的应用程序或基础设施交互。
因此,当一个容器需要运行另一个容器时,一种解决方案是将这两个容器放入一个称为Pod的更大容器中。
Pod确保它们的容器可以共享重要的命名空间,以便相互通信。
创建胶囊并将其容器添加到其中。
启动pod中的容器,一个用于数据库,一个用于WordPress。
在浏览器中导航到localhost:8080,WordPress应该已启动并运行。
接下来,我创建了两个容器并在Pod中运行它们。
您现在知道如何在服务器上运行容器和服务。
如果您正在考虑迁移到云,那么容器非常适合您。
使用Kubernetes和OpenShift等工具,您可以集群上自动启动Pod和容器。
如需更多学习和练习Kubernetes,请阅读KevinCasey撰写的Kubernetes入门3种方法并尝试他的Minikube教程。