podman 是什么?和 docker 有什么区别?

2023-10-29

什么是 podman ?

Podman 是一种无守护进程的容器引擎,可以创建、管理和运行 OCI 容器,容器可以以非 root 身份运行(也可以使用 root 身份运行)。Podman 是由 Red Hat 开发,从 Red Hat Enterprise Linux 7 开始,Podman 成为了默认的容器引擎。

Podman 遵守了 OCI(开放容器倡议)规范,可以轻松查找、运行、构建、共享和部署应用程序。Podman 提供了一个与 Docker 兼容的 CLI 工具(命令行界面),会使用 docker 基本就会使用 podman。Podman 与其它常见的容器引擎(Docker、CRI-O、containerd)类似,依赖于符合 OCI 的容器运行时(runc、crun、runv 等)与操作系统交互来创建容器,所以 Podman 创建的容器与其它常见容器引擎创建的容器几乎没有区别。

Podman 和 Docker 的异同点

相同点:

  • 都是基于 OCI 规范,可以管理和运行 OCI 容器和镜像。
  • 都支持使用类似于 Dockerfile 的构建文件来构建镜像,并且能够使用类似于 Docker Hub 的集中式仓库来存储和管理镜像。

不同点:

  • Docker 需要一个守护进程来管理容器,而Podman可以在没有守护进程的情况下直接管理容器。
  • Podman 支持 rootless 容器,容器默认情况下不具有 Root 访问权限。相比之下,Docker 的守护进程需要拥有 Root 权限。
  • Docker 在 MacOS 和 Windows 上也能够运行,而 Podman 主要面向 Linux 系统。但是 podman 也对 Windows 和 MacOS 做了支持(需要借助虚拟机来实现,称为 podman machine,在MacOS上借助 QEMU 虚拟机,在Windows上借助Linux子系统 WSL2)。
  • Docker 是一个功能很全的工具,而 Podman 采用的是模块化方式,依靠特定的工具来完成特定的任务。例如镜像构建,Docker 本身就可以构建镜像,而 Podman 需要使用 Buildah 工具来构建镜像。

小结

podman 相比 docker 在安全性和容器的管理方面更有优势,接下来的文章会详细介绍下 podman 的安装和使用方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

podman 是什么?和 docker 有什么区别? 的相关文章

随机推荐

  • AIX 下磁盘 I/O 性能分析

    转自 http www ibm com developerworks cn aix library 1203 weixy aixio 磁盘 I O 的概念 I O 的概念 从字义来理解就是输入输出 操作系统从上层到底层 各个层次之间均存在
  • 【SpringBoot】整合Kafka集群

    学习笔记 一 环境 二 maven引入 三 application配置 四 SpringBoot 生产者 五 SpringBoot 消费者 六 SpringBoot 主题分区 一 环境 使用Kafka3 0 0 master slave1
  • 解决mac中idea无法引入servlet-api包的问题

    1 虽然在pom文件中已经引入servlet api的依赖 如下
  • 14. 线性代数 - 线性方程组

    文章目录 线性方程组 矩阵 行列式 全排列和逆序数 N阶行列式 非 齐次线性方程 Hi 大家好 我是茶桁 结束了 微积分 部分的学习之后我们稍作休整 今天正式开始另外一部分 线性代数 的学习 小伙伴们放松完回来要开始紧张起来了 我们之前说过
  • Unity的C#编程教程_64_对象池 Object Pooling 详解及应用练习

    文章目录 Object Pooling Design Pattern Challenge Pool Manager Challenge Request from Pool Manager Recycle the Pool Object Po
  • QT 发布软件基本操作

    一 配置环境变量 找到Qt安装时的bin目录的路径 D Qt Qt5 14 2 5 14 2 mingw73 64 bin 将目录拷贝至下述环境变量中 打开计算机的高级系统设置 选中环境变量 gt 系统变量 gt Path 点击编辑 gt
  • javascript 将数组转换为字符串方法总结

    1 String arr 输出数组的每个元素值 用逗号分隔 2 arr join 分隔符 输出数组的每个元素之 用指定的分隔符分隔
  • 循环队列的实现(初始化、入队操作、出队操作、判满、判空、获取队头、队尾元素、销毁操作)

    typedef struct int array int front int rear int count 用count 的方式判断循环队列是否满 int N 总个数 MyCircularQueue 初始化 MyCircularQueue
  • 宝塔面板最全最快搭建https访问网站终极版教程

    我的个人博客 网址 https www minikuba com 迷你酷吧是一个基于程序员经验为基础分享技术文章 算法解题 大厂面试真题 热门项目的平台 致力于为大家提供更多涵盖前后端技术 技能的学习 助力广大热衷编程开发者全面发展 本文章
  • 动态集合和静态集合的不同

    ul li 1 li li 2 li li 3 li li 4 li li 5 li li 6 li ul
  • 铰接式车辆的横向动力学仿真提供车辆模型研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 铰接式车辆是一种具有铰接连接的多体系统 具
  • 【乌拉喵.教程】不同负载下继电器的保护电路设计(解决继电器触点粘接的问题)

    最近将多年来收集到的教学视频 国内外图书 源码等整理整合拿出来 涉及arm Linux python 信号完整性 FPFA DSP 算法 stm32 单片机 制图 电子模块 kali 出版社图书等 资料目前约1 5TB 详情 1 5TB 电
  • 当Selenium遇到TestNG

    当Selenium遇到TestNG 用 Selenium 测试 Web 页面时 所重现的各种行为依赖于测试人员的输入参数 例如 选择下拉餐单的项目 在文本框中输入字符等 不同的测试用例对应不同的输入 若有方法能够简单 有效的传入测试用参数
  • 图片自适应屏幕大小的css写法

    如果想让图片自适应屏幕的小而不是宽高固定不变可以在css代码里加入 img height auto width auto 9 width 100 用max width设置如果图片尺寸大于当前浏览器尺寸就自动缩放 图片的高度设置正比缩放 但是
  • 设计模式七大原则详解

    文章目录 一 java为什么要有设计模式 二 设计模式七大原则 三 单一职责原则 四 接口隔离原则 五 依赖倒转原则 六 里氏替换原则 七 开闭原则 八 迪米特法则 一 java为什么要有设计模式 写代码就像建楼房一样 要考虑到它后期是否以
  • 从0开始学go第四天

    模板继承 继承根模板 重新定义 块模板 Go Web开发系列教程 07 Go模板继承 哔哩哔哩 bilibili 解析模板时 base模板要在前 渲染模板时 要用ExecuteTemplate 而不是Excute 模板补充 Go语言标准库之
  • 电子竞赛项目回顾——基于多物料识别分拣的离线式监管工业流水线系统

    1 项目简介 本项目融合了工业物联网技术 FPGA图像处理等技术 针对工业流水线上的多物料分拣 提出了一种自下而上全自动化式 工厂监管离线式的解决方案 工厂内部所有的控制层 感知层均通过无线传输层与工厂总控主机相连 同时主机实时将工厂运行的
  • linux之关机、重启命令

    Linux几种关机 重启 相关命令 在linux下一些常用的关机 重启命令有shutdown halt reboot 及init 它们都可以达到重启系统的目的 但每个命令的内部工作过程是不同的 通过本文的介绍 希望你可以更加灵活的运用各种关
  • Tree 【POJ - 3237】【树链剖分+一些特殊的处理】

    题目链接 这道题 说来还的确困扰了我一个多小时 当时就在想 我该如何处理那些边权 我将边化为点 以及点 默认权值为0 的取相反数后的处理 因为点取相反数之后还是0 会困扰到那些边的 然后 我想到了 如果这段区间的返回的值为0 那么就说明了肯
  • podman 是什么?和 docker 有什么区别?

    什么是 podman Podman 是一种无守护进程的容器引擎 可以创建 管理和运行 OCI 容器 容器可以以非 root 身份运行 也可以使用 root 身份运行 Podman 是由 Red Hat 开发 从 Red Hat Enterp