0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

除了Docker我们还有哪些选择?

dyquk4xk2p3d 来源:ContainIQ 作者:Sudip Sengupta 2022-12-01 11:25 次阅读

目前,许多组织都采用容器来进行开发和运行应用程序。Docker 是该领域功能最丰富且使用最广泛的产品之一,已有数百万应用程序在使用它。Docker 本身有着强大的生态系统,并提供了一个广泛的工具包来管理容器化过程。

所谓三十年河东,三十年河西,曾经在容器领域叱咤风云的 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 可以成为一个实用的工具。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 程序
    +关注

    关注

    116

    文章

    3775

    浏览量

    80836
  • 镜像
    +关注

    关注

    0

    文章

    162

    浏览量

    10697
  • Docker
    +关注

    关注

    0

    文章

    454

    浏览量

    11807

原文标题:除了 Docker,我们还有哪些选择?

文章出处:【微信号:良许Linux,微信公众号:良许Linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    手动构建Docker镜像的方法

    不推荐使用docker commit命令,而应该使用更灵活、更强大的dockerfile来构建docker镜像。
    的头像 发表于 08-05 15:30 447次阅读
    手动构建<b class='flag-5'>Docker</b>镜像的方法

    除了英伟达,这些AI概念公司在2024年还有巨大的投资价值(一)

    除了英伟达,这些AI概念公司在2024年还有巨大的投资价值
    的头像 发表于 06-18 18:15 923次阅读
    <b class='flag-5'>除了</b>英伟达,这些AI概念公司在2024年<b class='flag-5'>还有</b>巨大的投资价值(一)

    除了英伟达,这些AI概念公司在2024年还有巨大的投资价值(三)

    除了英伟达,这些AI概念公司在2024年还有巨大的投资价值
    的头像 发表于 06-17 18:28 481次阅读
    <b class='flag-5'>除了</b>英伟达,这些AI概念公司在2024年<b class='flag-5'>还有</b>巨大的投资价值(三)

    除了英伟达,这些AI概念公司在2024年还有巨大的投资价值(四)

    除了英伟达,这些AI概念公司在2024年还有巨大的投资价值
    的头像 发表于 06-17 18:27 481次阅读
    <b class='flag-5'>除了</b>英伟达,这些AI概念公司在2024年<b class='flag-5'>还有</b>巨大的投资价值(四)

    除了英伟达,这些AI概念公司在2024年还有巨大的投资价值(五)

    除了英伟达,这些AI概念公司在2024年还有巨大的投资价值
    的头像 发表于 06-16 16:32 201次阅读
    <b class='flag-5'>除了</b>英伟达,这些AI概念公司在2024年<b class='flag-5'>还有</b>巨大的投资价值(五)

    除了英伟达,这些AI概念公司在2024年还有巨大的投资价值(二)

    除了英伟达,这些AI概念公司在2024年还有巨大的投资价值
    的头像 发表于 06-16 16:22 235次阅读
    <b class='flag-5'>除了</b>英伟达,这些AI概念公司在2024年<b class='flag-5'>还有</b>巨大的投资价值(二)

    关于Docker 的清理命令集锦

    这篇文章主要介绍了Docker 清理命令集锦,需要的朋友可以参考下 复制代码代码如下: docker kill $(docker ps -a -q)  删除所有已经停止的容器 复制代码代码如下
    的头像 发表于 06-13 15:56 316次阅读

    一文扫尽Nas常用Docker软件

    NAS(Network Attached Storage,网络附加存储)设备上的Docker软件选择取决于您的具体需求和用途。以下是一些NAS上常用的Docker软件推荐
    的头像 发表于 05-23 18:33 1749次阅读

    我们怎么选择适合自己的USB频谱分析仪

    选择什么样的USB频谱分析仪或者是选择其他款式的频谱分析仪,我们都要根据自己的使用要求还有价格预算来考虑我们最终来选取什么样的仪器。
    的头像 发表于 04-28 15:30 290次阅读

    精通Docker网络:Bridge驱动深度解析

    除了使用 docker0 网桥外,用户还可以使用自定义的网桥,然后通过 --bridge=BRIDGE 参数传递给 docker daemon。
    的头像 发表于 03-31 15:58 1372次阅读
    精通<b class='flag-5'>Docker</b>网络:Bridge驱动深度解析

    risc-v除了单片机还有其他应用吗?

    risc-v除了做单片机,还有其他芯片和处理器用这种架构的吗?
    发表于 03-29 21:53

    除了S参数,还有哪些网络参数呢?

    对于射频人员来讲,最熟悉的可能就是S参数了。但是除了S参数之外,其实还有其他很多网络参数。
    的头像 发表于 02-27 16:35 1147次阅读
    <b class='flag-5'>除了</b>S参数,<b class='flag-5'>还有</b>哪些网络参数呢?

    滑动变阻器除了保护电路,还有什么作用?

    滑动变阻器除了保护电路,还有什么作用? 滑动变阻器是一种可调节电阻值的器件,常用于电路中。除了用于保护电路外,滑动变阻器还有其他多个作用。下面将详细介绍滑动变阻器的各种作用。 1. 电
    的头像 发表于 02-18 18:09 1800次阅读

    铁威马NAS使用docker方式运行Solopace.Gem客户端

    安装Docker Manager nas系统版本: 系统桌面点击启动“应用中心”,搜索docker选择Docker Manager”进行安装
    的头像 发表于 12-18 14:31 747次阅读
    铁威马NAS使用<b class='flag-5'>docker</b>方式运行Solopace.Gem客户端

    如何利用树莓派安装DockerDocker-compose呢?

    本文主要演示了树莓派如何安装DockerDocker-compose的过程。
    的头像 发表于 12-14 16:19 2760次阅读
    如何利用树莓派安装<b class='flag-5'>Docker</b>和<b class='flag-5'>Docker</b>-compose呢?