华人澳洲中文论坛

热图推荐

    别用Docker了,这7大开源容器化工具也能知足你

    [复制链接]

    2022-12-5 18:11:09 45 0

    许多企业都采取容器来进行开发和办理不乱的运用顺序,Docker 是该畛域功用最丰硕且使用最普遍的工具之一,已无数百万运用顺序在使用它。Docker 自身有着弱小的独立生态零碎,并提供了一个普遍的工具包来办理容器化进程,但 Docker 还有其余代替品,它们提供了共同的用例和功用。本文深化讨论了 Docker 七个代替品,其中包罗一系列综合平台,如 Docker 以及能够作为 Docker 生态零碎组件代替品的工具等。
    一、Podman


    Podman 是 RedHat 开发的一个无守护顺序的开源 Linux 原生容器引擎,用于构建、运转和办理 Linux OCI 容器与容器镜像。只管 Podman 提供了一个相似于 Docker 的命令行界面,但它的操作形式其实不相反。
    Docker 和 Podman 之间的一个明显区分是,Docker 运转一个耐久的、自力更生的运转时来办理其对象或称为 dockerd 的守护过程;而 Podman 其实不依赖守护过程来任务,相同,Podman 将容器作为子过程启动,它还间接与注册表和使用运转时过程的 Linux 内核进行交互,也正因如斯,Podman 被称为无守护过程的容器技术。
    没有守护过程进步了 Podman 作为容器引擎的灵敏性,打消了对单个过程的依赖。Podman 与 Docker 的另外一大不同就是它不需求 root 权限。这一特征提供了一个额定的平安缓冲区,限度了某些可能把持症结零碎设置并使容器和包孕的运用顺序易受攻打的潜伏风险过程。
    另外,Podman 能够运转 pod-- 包孕一个或多个容器的聚拢,作为一个繁多实体办理,并利用同享的资源池。经过这项才能,Podman 用户能够将他们的任务负载转移到 Kubernetes。
    二、LXD


    LXD 一个专为 LXC Linux 容器设计的开源容器引擎。LXC 使用户可以在隔离的容器或相似于虚构机的虚构环境中运转运用顺序,而无需承当办理单个内核的技术担负。LXD 提供了一个用于衔接 LXC 软件库的接口,同时创立了一个守护过程,担任处置网络、数据存储和办理多个 LXC 容器。只管 LXC 能够作为独立工具运转,但它具有无限的功用子集。LXD 提供了这些附加功用,因此依赖于 LXC 任务。
    LXD 与 Docker 的次要区分如下。与 Docker 倡议每个容器只要单个过程的设计模式不同,LXC/LXD 中的容器能够运转多个过程。另外,Docker 容器可移植性更强,为与 LXD 比拟,Docker 无效地笼统了资源。最初,Docker 反对在 Windows 和 macOS 环境上运转,但 LXD 只反对 Linux。
    三、Containerd


    Containerd 是一个初级容器运转时,它经过在底层运转 runc 以提供操作零碎和容器引擎之间的接口。runc 是一个反对 Windows 和 Linux 的守护过程,它笼统了特定于操作零碎的功用,使运转和监视容器以及办理图象传输和存储变得更为容易。
    Containerd 提供的这类笼统级别功用打消了进行若干低级零碎调用的繁杂性,使得容器的可移植性得以完成。但是,与 Docker 不同,Containerd 不处置镜像的构建或卷的创立。乏味的是,Containerd 是 Docker 的默许运转时,当初它是一个独立的工具,就像 runc 同样。这也使得 Containerd 像 Kubernetes 同样成为一个便利的编排工具,Containerd 也是最受欢送的 Docker 代替品之一。
    四、Buildah


    Buildah 是红帽基金会为容器化零碎开发的一个 OCI 镜像构建工具。它是一个提供相似于在 Docker 中运转 docker build 的功用的工具。Buildah 常常与 Podman 一同使用,互作增补,例如,Podman 在后盾使用 Buildah 功用的子集来完成其构建进程。
    它能够从 Dockerfile 或 Containerfile 中构建镜像,并生成与使用 Docker 创立的镜像相反的镜像,由于这些镜像是合乎 OCI 的。另外,它还提供了对镜像层的细粒度管制,允许在一个繁多层中进行屡次修正提交。它还提供了从头开始构建镜像的才能,即不包孕任何内容的镜像,这让用户能够自在地只添加运转运用顺序所需的软件包。最初,与 Docker 不同的是,在 Buildah 中,用户只能看到他们构建的镜像。
    五、BuildKit


    BuildKit 是第二代构建镜像的 Moby 名目,在较新的 Docker 版本中作为试验性功用提供。与 Docker 同样,它使用守护顺序运转。不外,规范 Docker 构建和 BuildKit 之间的次要区分之一是,前者是逐层构建,后者提供并行构建处置。这个功用进步了机能,使构建速度更快。BuildKit 还允许跳过未使用的阶段,改良增量构建,并允许无根构建。另外,BuildKit 使用一个缓存来增加重建图象每一个层的需求。
    六、Kaniko


    Kaniko 是一个谷歌镜像构建工具,它能够从 Dockerfile 构建镜像。它和 Buildah 同样是无守护过程的,但更着重于在 Kubernetes 中构建镜像。Kaniko 关于当地开发实例来讲不是很便利,由于它通常作为镜像与 Kubernetes 等容器编排器一同运转。关于 Kubernetes 集群中的继续集成和交付管道,Kaniko 能够成为一个实用的工具。
    七、RunC


    RunC 之前是嵌入到 Docker 架构中的一个模块,在 2015 年作为独立工具公布。尔后,它成为一个普遍使用的、规范化的、可互操作的容器运转时。DevOps 团队能够将其作为 Docker 或其余定制容器引擎的一部份。RunC 属于容器化生态零碎中的容器运转时部份。容器运转时是处置容器运转的容器引擎中使用的较低级别的组件。
    只管 Docker 为组织在容器化过程当中所需的方方面面提供了一个片面的工具包,但某些 DevOps 功用可能需求探究其余代替计划。然而,在选择任何此类选项时也需牢记此类代替计划所运转的主机操作零碎及其使用状况。
    作者丨Sudip Sengupta
    来源丨网址:http://www.containiq.com/post/docker-alternatives
    dbaplus社群欢送泛博技术人员投稿,投稿邮箱:[email protected]
    dbaplus社群是环抱Database、BigData、AIOps的企业级专业社群。资深大咖、技术干货,天天精品原创文章推送,每周线上技术分享,每个月线下技术沙龙,每季度Gdevops&DAMS行业大会。
    关注大众号【dbaplus社群】,获得更多原创技术文章和精选工具下载

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    返回列表 本版积分规则

    :
    注册会员
    :
    论坛短信
    :
    未填写
    :
    未填写
    :
    未填写

    主题30

    帖子37

    积分164

    图文推荐