首页 > 其他分享 >Podman 和 Docker 区别对比

Podman 和 Docker 区别对比

时间:2023-02-25 13:57:54浏览次数:48  
标签:容器 对比 Podman 使用 镜像 Docker docker

1.docker 需要在我们的系统上运行一个守护进程(docker daemon),而podman不需要
2.启动容器的方式不同
docker cli 命令通过API跟 Docker Engine(引擎)交互告诉它我想创建一个container,然后docker Engine才会调用OCI container runtime(runc)来启动一个container。这代表container的process(进程)不会是Docker CLI的child process(子进程),而是Docker Engine的child process。
Podman是直接给OCI containner runtime(runc)进行交互来创建container的,所以container process直接是podman的child process。
3.因为docker有docker daemon,所以docker启动的容器支持--restart策略,但是podman不支持,如果在k8s中就不存在这个问题,我们可以设置pod的重启策略,在系统中我们可以采用编写systemd服务来完成自启动
4.docker需要使用root用户来创建容器,但是podman不需要;Podman不需要守护进程,而是使用用户命名空间来模拟容器中的root,无需连接到具有root权限的socket保证容器的体系安全。

 

Docker存在的一些问题:

 

 

 

Podman 是一个容器管理工具,可以用来运行和管理容器。它是一个开源项目,由 Red Hat 开发,旨在提供与 Docker 相同的功能,但是没有 Docker 的 daemon 进程。这意味着 Podman 可以在不启动 daemon 的情况下直接运行容器,并且它不依赖于 Docker 的存储库或镜像格式。

与 Docker 相比,Podman 有一些显著的区别:

  • Podman 直接运行容器,不需要 daemon 进程。这意味着 Podman 可以在不启动 daemon 的情况下直接运行容器,并且它不依赖于 Docker 的存储库或镜像格式。
  • Podman 可以使用标准的 Linux 容器工具(例如 systemd)来管理容器。这意味着 Podman 可以与其他工具(例如 systemd)集成,并提供与 Docker 类似的功能。
  • Podman 使用标准的 Linux 用户和组权限模型。这意味着 Podman 可以使用 Linux 系统上的用户和组来控制容器的访问权限,而不是使用 Docker 自己的权限模型。
  • Podman 可以在 rootless 模式下运行。这意味着 Podman 可以在不使用 root 用户权限的情况下运行容器,这对于那些希望在生产环境中使用容器但又不希望使用 root 用户的用户来说是非常方便的。


Podman 和 Docker 在使用上有一些显著的区别。

命令行界面:Podman 和 Docker 使用不同的命令行界面。例如,Podman 使用 podman 命令而不是 docker 命令,并且它的子命令也有所不同。
镜像存储库:Podman 和 Docker 使用不同的镜像存储库。Podman 使用标准的 Linux 文件系统来存储镜像,而 Docker 使用自己的存储库。这意味着 Podman 可以直接访问本地镜像,而 Docker 需要通过 Docker 存储库来访问镜像。
镜像格式:Podman 和 Docker 使用不同的镜像格式。Podman 使用 OCI(Open Container Initiative)镜像格式,而 Docker 使用自己的镜像格式。这意味着 Podman 可以直接使用 OCI 镜像,而 Docker 需要将 OCI 镜像转换为 Docker 镜像才能使用。
进程管理:Podman 和 Docker 使用不同的进程管理方式。Podman 使用标准的 Linux 进程管理工具(例如 systemd)来管理容器进程,而 Docker 使用自己的进程管理方式。这意味着 Podman 可以与其他进程管理工具(例如 systemd)集成,而 Docker 不能。
总的来说,Podman 和 Docker 在功能上基本相同,但是它们在实现上有一些不同。
————————————————
版权声明:本文为CSDN博主「ModStartCMS」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ModStartCMS/article/details/128573842

标签:容器,对比,Podman,使用,镜像,Docker,docker
From: https://www.cnblogs.com/sword0077/p/17154270.html

相关文章

  • docker基础与概念
    什么是dockerDocker使用Google公司推出的Go语言进行开发实现,基于Linux内核的cgroup,namespace,对进程进行封装隔离,属于操作系统层面的虚拟化技术。由于隔离的进程独立于宿......
  • docker 导出导入镜像 恢复镜像
    查看镜像列表docker images导出镜像dockersaved23bdf5b1b1b>./javaa.tar d23bdf5b1b1b 为镜像id./javaa.tar 为导出路径以及导出文件的名称 恢复镜像docke......
  • docker 修改默认镜像位置 docker更改数据目录
    修改docker数据目录1、更新docker自定义数据目录,建议先停止docker应用,这样子更好的保证数据完整性,在复制过程中就不容易丢失数据。##停止docker应用systemctls......
  • Docker配置https证书案例
    目录一.安装harbor1.安装docker2.安装dockercompose3.解压harbor软件包二.配置harbor服务器配置https证书1.修改harbor配置文件2.使得配置生效3.测试服务三.配置harbor服......
  • 使用docker-compose快速部署Prometheus+grafana环境
    由于最近公司服务频繁出问题,老板很生气,下面的人都很不好过,于是老大让加一下业务监控,来观察线上数据状态。但是由于qa环境数据量太少,所以自己搭建了一套环境做相关监控,并且......
  • Docker 启动报:Job for docker.service failed because the control process exited wi
    方法:1、在/etc/docker/daemon.json路径下添加代码。没有这个文件的可以手动添加touch/etc/docker/daemon.json在里面添加代码:{"storage-driver":"devicemapper"}......
  • docker部署mysql
    搜索mysql镜像dockersearchmysql拉取mysql镜像dockerpullmysql:5.7创建容器,设置端口映射、目录映射mkdir~/mysqlcd~/mysqldockerrun-id\-p330......
  • Docker--离线安装
    官网https://docs.docker.com/engine/install/centos7https://download.docker.com/linux/centos/7/x86_64/stable/Packages/需要下载的安装包containerd.io-1.6.9-3......
  • docker 操作常用命令
    镜像#以tomcat为基础镜像创建一个容器,容器名为my-tomcat#拉取tomcat最新镜像,实际生产中,dockerpull这一步可以省略,dockerrun的时候会自己去拉取。dockerpulltomcat......
  • docker之安装tomcat
    国内Image仓库地址:https://hub.docker.com/search?q=tomcat安装tomcatdockerpulltomcat查看Imagedockerimages运行tomcatdockerrun-d--namemy-tomcat-p9090......