关于docker和podman

2023-11-17

docker daemon 存在问题

  1. 单点故障问题 docker daemon一旦死亡 所有容器都将死亡
  2. docker daemon  拥有运行中的容器的所有子进程
  3. 所有docker操作都需由具有跟root相同权限的用户执行
  4. 构建容器时 可能会导致安全漏洞

podman

通过直接与image registry, image, container 进行互动,而不是通过守护进程来解决以上问题 

而且podman还可以允许用户在没有完全root权限的情况下可以运行容器。而且还可以和docker兼容

docker是标准的容器管理技术

podman 是一种开源的Linux原生工具 根据开放容器

倡议 标准开发管理运行容器和pod。

podman是一个友好的容器调度器 

是redhat 和centos8中默认的容器引擎

集合了命令集的工具 为了处理容器化进程的不同任务 可以作为一个模块化框架工作,

podman 工具集包括:

podman: pod和容器镜像管理器

buildah:容器镜像生成器

skopeo:容器镜像检查管理器

runc:容器运行器和特性构建器 并传递podman和buildah

crun:可选运行时,为rootless容器提供更大的灵活性 安全性 控制性

k8s 和podman在某些方面也是相似的

podman 可以创建pod一起工作的

k8s ,pod在一个共同的空间里作为一个单元来管理容器

主要好处:开发人员可以共享资源 在一个pod中为同一个应用程序使用不同的容器 一个容器用于前端一个容器可以用于后端 还有一个数据库

pod的配置可以导入k8s兼容的YAML文件 ,可以应用到k8s集群中,从而允许容器更快地进入生产。

podman 是没有守护进程的守护进程是在后台运行的程序 他处理服务进程和请求 没有用户界面 ,podman是一种独特的容器引擎 实际上并不依赖守护进程 而是作为子进程启动容器和pod

podman支持与docker兼容的CLI接口

podman  VS  docker                 有许多共同的特性

podman与Linux内核交互 通过runc容器运行进程而不是daemon来管理容器 

buildah实用程序用于替代docker 

build作为容器镜像构建工具 

docker push被skopeo替代用于在注册表和容器引擎之间移动容器镜像

架构:

docker    使用守护进程 一个正在后台运行的程序      来创建镜像和运行容器  

podman   无守护进程的架构这意味着它可以在启动容器的用户下运行容器

root特权:

podman没有守护进程来管理活动 也无需为其分配root权限 docker在其守护进程配置中添加了rootless模式 但 podman首先使用里这种方法 并将其本特性进行了推广 原因:

安全:

podman允许容器使用rootless权限 rootless容器被认为比root特权的容器更安全  在docker中守护进程拥有root权限 这使得它们更易成为攻击者的首选入侵点podman可以同时运行root容器和rootless容器

systemd:

如果没有守护进程 podman需要另一个工具来管理服务并支持 后台运行的容器systemd为现有容器创建控制单元或者用来生成新的容器 systemd还可以与podman集成 允许它在默认情况下运行启用了systemd的容器 从而无需进行任何修改

构建镜像:

docker可以自己构建容器镜像 ,podman则需要另一种名为buildah的工具的辅助 该工具充分体现了他的特殊性 他是为构建镜像而设计的 而不是为构建容器而生

docker swarm               podman不支持docker swarm 

podman增加了对docker compose 的支持  使其对swarm兼容 从而克服了这个限制,docker因为原生性与swarm融合的也很好。

docker是一个独立的强大的工具在整个循环中处理所有的容器化任务,有优点也会有缺点

podman采取模块化依靠专门的工具 来完成特定的任务

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

关于docker和podman 的相关文章

随机推荐

  • for in / for of / forEach 循环

    目录 1 for 循环 2 for in 循环 3 forEach 循环 4 for of循环 5 const 在 for in 或者for of 中的使用 1 for 循环 for 循环的最大缺点是需要跟踪计数器和退出条件 虽然 for
  • nginx解决端口问题含配置步骤---反向代理

    centos7下安装nginx博客链接 https blog csdn net qq 41357211 article details 99694744 nginx配置反向代理步骤 在文章下面 nginx安装在服务器后 例如服务器的域名为
  • android接口加密实现方案

    Fiddler抓包工具配置 android接口如何防抓取 Windows下使用OpenSSL生成RSA证书 文中使用的加密库 1 程序主类 import android os Bundle import android support v7
  • QTreeWidget表头拉伸宽度自适应导致长度显示有遮挡

    对QTreeWidget 设置 header gt setSectionResizeMode 0 QHeaderView ResizeToContents 后 由于控件的拉伸属性再为其设置setColumnWidth 0 200 将不再生效
  • CE+OD外挂制作实战 [提高篇]

    人造指针 基址 实验目标 通过向游戏注入一段特殊汇编代码 实现自动获取动态地址 省略找基址的麻烦 为什么会出现人造指针 1 基址偏移层数太多 很难找 2 有些游戏根本找不到基址 人造指针有什么优缺点 1 人造指针就算游戏更新也无需去重复找基
  • Numpy 通过矩阵操作避免for循环 之 [None, :, :]运用

    我们知道python中 for 循环的效率是不高的 相比之下 直接运用矩阵向量操作 如点乘 可以让代码运行更快 因为在复现paper时候遇到了这样的问题 在这里总结一下我的解决方法 None 介绍 通过None indexing 可以将一个
  • citespace数据处理:用python对Ref文档进行去重

    首先将txt文档提取到Excel表格中筛选出重复项 并且整理到txt中 需要去重的目标txt也准备好 接下来运行代码 注意代码中的路径需要自己按实际情况修改 coding utf 8 author pig 实现去重功能 import re
  • xampp安装

    常见报错 1 apache启动出错 ServerRoot must be a valid directory 解决方法 安装时 直接安装在D盘下 而不是子文件夹下 2 XAMPP与VMware端口443占用问题 Port 443 in us
  • LaTeX新人教程,30分钟从完全陌生到基本入门

    1 LaTeX软件的安装和使用 方法A 自助 在MikTeX的官网下载免费的MikTeX编译包并安装 下载WinEdt 收费 或TexMaker 免费 等编辑界面软件并安装 方法B 打包 在ctex org下载ctex套装 含MikTeX及
  • C++,函数的分文件编写,进行封装。

    1 创建后缀名为 h的头文件 例如test h 右键头文件 新建项 下方文件命名为为 h的头文件 2 然后在头文件里面 对函数声明 其中 include
  • 160道Shell企业面试题整理汇总

    1 Shell脚本是什么 它是必需的吗 答 一个Shell脚本是一个文本文件 包含一个或多个命令 作为系统管理员 我们经常需要使用多个命令来完成一项任务 我们可以添加这些所有命令在一个文本文件 Shell脚本 来完成这些日常工作任务 2 什
  • 领扣算法:234 回文链表

    请判断一个链表是否为回文链表 示例 1 输入 1 gt 2 输出 false 示例 2 输入 1 gt 2 gt 2 gt 1 输出 true 输入参数 public boolean isPalindrome ListNode head 解
  • 软件设计七大原则

    文章目录 一 开闭原则 定义 实现方法 二 里氏替换原则 定义 实现方法 三 依赖倒置原则 定义 实现方法 四 单一职责原则 定义 实现方法 五 接口隔离原则 定义 实现方法 六 迪米特法则 定义 实现方法 七 合成复用原则 定义 实现方法
  • 图像处理——基本知识

    数字图像处理的一些基本知识 一 什么是灰度直方图 二 什么是局部处理 哪些算法属于局部处理 三 什么是点处理 哪些算法属于点处理 四 图像增强常用的方法 五 锐化和平滑 六 膨胀和腐蚀 七 无监督算法 一 什么是灰度直方图 灰度直方图反映的
  • liunx卸载磁盘后重新挂载

    umount dev sdb1 root localhost mkdir data1 在根目录下新建挂载硬盘所需文件夹 root localhost parted dev sdb 使用parted来对GPT磁盘操作 进入交互式模式 part
  • ReactNative系列之十二图标组件react-native-vector-icons的使用

    1 前言 第三方网站提供了丰富的矢量图icon 这些图可以在我们的应用中被引入使用 这时介绍react native vector icons控件的使用 2 安装 请移步至https github com oblador react nat
  • Jenkins构建Maven多模块项目时,单独编译子模块,并且不触发构建其它模块

    通过下面两个步骤 可以实现对个别模块的编译 一 Jenkins构建Maven多模块项目时 单独编译子模块 配置 1 Root POM指向父pom xml 2 Goals and options指定构建模块的参数 mvn pl jsoft w
  • 一条自由游动的鲸鱼

    先看效果 再看代码 div div
  • R语言画图的实例分析,坐标轴,图例等设置

    通过一个具体的案例对R语言的画图进行分析 主要包括辅助线的添加 plot 函数的基本参数设置 以及图例坐标轴的设置 案例分析 数据的输入 dose lt c 20 30 40 45 60 drugA lt c 16 20 27 40 60
  • 关于docker和podman

    docker daemon 存在问题 单点故障问题 docker daemon一旦死亡 所有容器都将死亡 docker daemon 拥有运行中的容器的所有子进程 所有docker操作都需由具有跟root相同权限的用户执行 构建容器时 可能