Linux——容器基本原理

  • Post author:
  • Post category:linux


一、容器技术:

软件应用通常依赖于运行时环境提供的其他库、配置文件或服务,传统上,软件应用的运行时环境安装在物理主机或虚拟机上运行的操作系统中,以传统法式部署的软件应用的主要弊端是依赖项会受到运行时环境的束缚,同一系统上的两个应用可能需要同一软件互不兼容的的不同版本。解决这些冲突的方式就是将应用打包并作为容器进行部署。

容器是由一个或多个与系统其余部分隔离的进程组成的集合,是提供托管应用的可重用性和可移植性的有效途径,可以轻松地从一个环境迁移到另一个环境,通常具有临时性。

二、虚拟机和容器的不同之处:

1、虚拟机:

(1)多个系统同时在一个硬件平台上运行。

(2)使用虚拟机监控程序将硬件分为多个虚拟硬件环境,允许多个操作系统并行运行。

(3)需要一个完成的操作系统。

2、容器:

(1)直接在操作系统上运行,跨系统上的所有容器共享硬件和操作系统资源。

(2)共享相同操作系统内核,将容器化应用进程和系统其余进程隔离开,使用内核兼容的软件。

(3)需要的硬件资源比虚拟机少。

三、容器实施的三种核心技术:

(1)用于资源管理的控制组(cgroups)。

(2)用于进程隔离的命名空间。

(3)加强安全边界的selinux 和安全计算模式。

四、从容器镜像运行容器:

容器镜像作为创建容器的蓝图,容器镜像会打包的依赖项有:

(1)系统库

(2)编程语言库

(3)配置设置

(4)静态数据文件

三、使用podman管理容器:

(1)在充当容器主机的单个服务器上处理各个容器,执行此操作的容器工具有:

podman      #直接管理容器和容器镜像

skopeo      #可用于检查、复制、删除和签署镜像

buildah     #可用于创建新的容器镜像

(2)在容器主机上,可以root用户或普通非特权用户身份运行容器,由普通非特权用户运行的容器称为rootless容器。

(3)Kubernetes是一项编排服务,可以更轻松地在容器主机集群中部署、管理和扩展基于容器的应用,当启动新容器是,可帮助管理DNS更新。



版权声明:本文为m0_71334593原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。