什么是网站建设需求分析,深圳排名前十的跨境电商公司,西安有那些做网站的公司好,WordPress如何加代码文章目录1. 介绍容器历史2. 描述 Linux 容器架构3. Podman 管理容器1. 介绍容器历史
近年来#xff0c;容器迅速流行起来。然而#xff0c;容器背后的技术已经存在了相对较长的时间。2001年#xff0c;Linux引入了一个名为VServer的项目。VServer 是第一次尝试在高度隔离的…
文章目录1. 介绍容器历史2. 描述 Linux 容器架构3. Podman 管理容器1. 介绍容器历史
近年来容器迅速流行起来。然而容器背后的技术已经存在了相对较长的时间。2001年Linux引入了一个名为VServer的项目。VServer 是第一次尝试在高度隔离的单个服务器内运行完整的进程集。
从 VServer 开始隔离进程的想法进一步发展并围绕 Linux 内核的以下功能正式化 Namespaces 命名空间隔离通常对所有进程可见的特定系统资源。在命名空间内只有属于该命名空间成员的进程才能看到这些资源。命名空间可以包括网络接口、进程 ID 列表、挂载点、IPC 资源和系统的主机名信息等资源。 Control groups (cgroups) 控制组将进程集及其子进程划分为组以管理和限制它们消耗的资源。控制组对进程可能使用的系统资源量进行限制。这些限制使一个进程不会在主机上使用太多资源。 Seccomp Seccomp 于 2005 年开发并于 2014 年左右引入容器它限制了进程使用系统调用的方式。Seccomp 为进程定义了一个安全配置文件其中列出了允许它们使用的系统调用、参数和文件描述符。 SELinux Security-Enhanced Linux (SELinux) 是进程的强制访问控制系统。Linux 内核使用 SELinux 来保护进程免受彼此的影响并保护主机系统免受其正在运行的进程的影响。进程作为受限的 SELinux 类型运行对主机系统资源的访问权限有限。
所有这些创新和功能都集中在一个基本概念上使进程能够隔离运行同时仍然访问系统资源。这个概念是容器技术的基础也是所有容器实现的基础。如今容器是 Linux 内核中的进程利用这些安全功能来创建一个隔离的环境。该环境禁止隔离进程滥用系统或其他容器资源。
容器的一个常见用例是在同一主机中拥有同一服务例如数据库服务器的多个副本。每个副本都有独立的资源文件系统、端口、内存因此服务不需要处理资源共享。隔离保证故障或有害服务不会影响同一主机或底层系统中的其他服务或容器。
2. 描述 Linux 容器架构
从 Linux 内核的角度来看容器是一个有限制的进程。但是容器运行的不是单个二进制文件而是一个镜像。映像是一个文件系统包其中包含执行进程所需的所有依赖项文件系统中的文件、已安装的包、可用资源、正在运行的进程和内核模块。
就像可执行文件是运行进程的基础一样镜像是运行容器的基础。运行的容器使用镜像的不可变视图允许多个容器同时重用同一个镜像。由于镜像是文件它们可以通过版本控制系统进行管理从而提高容器和镜像供应的自动化程度。
容器镜像需要在本地可用以便容器运行时执行它们但镜像通常存储和维护在镜像存储库中。镜像存储库只是一种服务公共或私有可以在其中存储、搜索和检索镜像。镜像存储库提供的其他功能包括远程访问、镜像元数据、授权或镜像版本控制。
有许多不同的镜像存储库可用每一个都提供不同的功能
Red Hat Container CatalogRed Hat QuayDocker HubGoogle Container RegistryAmazon Elastic Container Registry
3. Podman 管理容器
容器、镜像和镜像注册表需要能够相互交互。例如您需要能够构建镜像并将它们放入镜像注册表中。您还需要能够从镜像注册表中检索镜像并从该镜像构建容器。
Podman 是一个开源工具用于管理容器、容器镜像以及与镜像注册表交互。它提供以下主要功能
它使用开放容器倡议(OCI)指定的镜像格式。这些规范定义了一种标准的、社区驱动的、非专有的镜像格式。
Podman 将本地镜像存储在本地文件系统中。这样做可以避免不必要的客户端/服务器架构或在本地机器上运行守护进程。
Podman 遵循与 Docker CLI 相同的命令模式因此无需学习新的工具集。
Podman 与 Kubernetes 兼容。Kubernetes 可以使用 Podman 来管理其容器。
REFERENCES
Red Hat Quay Container RegistryPodman siteOpen Container Initiative