下一代容器工具 Podman 与 Docker 的比较
Linux 容器介绍Linux容器是与系统其他部分隔离开的一系列进程。运行这些进程所需的所有文件都由另一个镜像提供,这意味着从开发到测试再到生产的整个过程中,Linux 容器都具有可移植性和一致性。因而,相对于依赖重复传统测试环境的开发渠道,容器的运行速度要快得多。容器比较普遍也易于使用,因此也成了 IT 安全方面的重要组成部分。容器可以确保您的应用拥有必需的库、依赖项和文件,让您可以在生产中自如
Linux Container / 容器简介
Linux容器是与系统其他部分隔离开的一系列进程。运行这些进程所需的所有文件都由另一个镜像提供,这意味着从开发到测试再到生产的整个过程中,Linux 容器都具有可移植性和一致性。因而,相对于依赖重复传统测试环境的开发渠道,容器的运行速度要快得多。容器比较普遍也易于使用,因此也成了 IT 安全方面的重要组成部分。
容器可以确保您的应用拥有必需的库、依赖项和文件,让您可以在生产中自如地迁移这些应用,无需担心会出现任何负面影响。实际上,您可以将容器镜像中的内容,视为 Linux 发行版的一个安装实例,因为其中完整包含 RPM 软件包、配置文件等内容。但是,安装容器镜像发行版,要比安装新的操作系统副本容易得多。这样可以避免危机,做到皆大欢喜。
在需要很高的可移植性、可配置性和隔离的情况下,我们可以通过不同的方式,利用 Linux 容器解决难题。Linux 容器的价值在于,它能加速开发并满足新出现的业务需求,当然,选择正确的容器平台也同样重要。
容器就是虚拟化吗?如何区分容器与虚拟化?
不完全如此。更确切的说法应该是:两者为互补关系。我们用一种简单方式来思考一下:
- 虚拟化使得您的操作系统(Windows 或 Linux)可同时在单个硬件系统上运行。
- 容器则可共享同一个操作系统内核,将应用进程与系统其他部分隔离开。
例如:ARM Linux 系统运行 ARM Linux 容器,x86 Linux 系统运行 x86 Linux 容器,x86 Windows 系统运行 x86 Windows 容器。Linux 容器具有极佳的可移植性,但前提是它们必须与底层系统兼容。
这意味着什么?
虚拟化会使用虚拟机监控程序模拟硬件,从而使多个操作系统能够并行运行。但这不如容器轻便。事实上,在仅拥有容量有限的有限资源时,您需要能够可以进行密集部署的轻量级应用。Linux 容器在本机操作系统上运行,与所有容器共享该操作系统,因此应用和服务能够保持轻巧,并行化快速运行。
Linux 容器是我们开发、部署和管理应用方式的又一次飞跃。
- Linux 容器镜像提供了可移植性和版本控制,确保能够在开发人员的笔记本电脑上运行的应用,同样也能在生产环境中正常运行。
- 相较于虚拟机,Linux 容器在运行时所占用的资源更少,使用的是标准接口(启动、停止、环境变量等),并会与应用隔离开;
- 此外,作为(包含多个容器)大型应用的一部分时更加易于管理,而且这些多容器应用可以跨多个云环境进行编排。
什么是 LXC?
作为一个开源容器平台,Linux 容器项目(LXC)提供了一组工具、模板、库和语言绑定。LXC 采用简单的命令行界面,可改善容器启动时的用户体验。
LXC 提供了一个操作系统级的虚拟化环境,可在许多基于 Linux 的系统上安装。在 Linux 发行版中,可能会通过其软件包存储库来提供 LXC。
Docker 介绍
Docker 是一个开源的应用容器引擎,属于 Linux 容器的一种封装,Docker 提供简单易用的容器使用接口,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。容器是完全使用沙箱机制,相互之间不会有任何接口。
Docker 是目前最流行的 Linux 容器解决方案,即使 Docker 是目前管理 Linux 容器的一个非常方便的工具,但它也有两个缺点:
- Docker 需要在你的系统上运行一个守护进程。
- Docker 是以 root 身份在你的系统上运行该守护程序。
这些缺点的存在可能有一定的安全隐患,为了解决这些问题,下一代容器化工具 Podman 出现了 。
Podman 介绍
什么是 Podman?简而言之:alias docker = podman
Podman 是一个开源的容器管理工具,其可在大多数 Linux 平台上使用,它是一种无守护程序的容器引擎,用于在 Linux 系统上开发,管理和运行任何符合 Open Container Initiative(OCI)标准的容器和容器镜像,提供了一个与Docker兼容的命令行前端,该前端可以简单地为Docker CLI别名,即“ alias docker = podman”。Podman控制下的容器既可以由root用户运行,也可以由非特权用户运行,这个是Podman与Docker最大的差别之一。
Podman 官网地址:https://podman.io/
Podman 项目地址:https://github.com/containers/podman
后续内容
- 容器由 Root 运行与非 Root 用户运行的区别;
- Podman 的安装;
- Podman 的基本使用;
参考
更多推荐
所有评论(0)