Linux——容器简介

1.容器技术

   软件应用通常依赖运行时环境提供的其他库、配置文件或服务,在运行时环境安装在物理主机或虚拟机上运行的操作系统,同时应用依赖项也会随着该操作系统一起安装在主机上。

   主要弊端是依赖项会受运行时环境的影响,引用所需的支持软件版本比操作系统更新或更旧,同一个系统上的两个应用可能需要同一个软件互不兼容的不同版本。

   此时就可以将这些应用打包作为容器进行部署,容器是由一个或多个与系统其余部分隔离的进程组成的集体。软件容器是打包应用来简化部署和管理的一种方式。

2.容器与虚拟机对比

容器提供许多与虚拟机相同的益处,如安全、存储和网络隔离。容器和虚拟机在与硬件和底层操作系统交互的方式上有所不同。

虚拟机:多个操作系统能够在同时在一个硬件平台上运行

               使用虚拟机监控程序将硬件分为多个虚拟硬件系统,允许多个操作系统一起运行

               需要一个完整的操作系统环境来支持该应用。

容器:直接在操作系统上进行,跨系统的所有容器共享硬件和操作系统

           共享相同的操作系统内核,将容器化应用进程与系统的其余进程隔开

           需要的硬件资源比虚拟机少,能够快速启动和停止将对存储要求

3.容器规划

   容器是提供托管应用的可重用性和可移植性的有效途径,可以从一个环境迁移到另一个环境。容器具有临时性,可以将运行中的容器生成的数据永久保存在持久存储中,但容器本身会在需要时运行,然后停止并被删除,下次需要用到特定容器时,将重新启动新的容器进程。

4.从容器镜像运行容器

容器从容器镜像运行,容器镜像作为创建容器的蓝图,它将应用与其所有依赖项(如系统库、编程语言运行时、编程语言库、配置设置、静态数据文件)一起打包。容器镜像不可更改或不可改变。

可以在单个容器中安装有多个服务组成的复杂软件应用,但更好的是在单独容器中运行每个组件、web服务器、数据库和消息传递系统,这样可以更好的维护单个应用组件不会影响其他组件或应用堆栈。

5.管理容器

poman 直接管理容器和容器镜像
skopeo 用于检查、复制、删除和签署镜像
buildah 用于创建新的容器镜像

可以以root用户或普通用户身份运行容器,由非特权用户运行的容器称为rootless容器,更安全,但存在限制,如无法通过容器主机和特权端口发布其网络服务。

你可能感兴趣的:(Linux,linux)