Podman与Docker的差别

Podman与Docker的差别
青夢Podman与Docker的差别
Podman: Pod管理器
Pod: k8s核心调度单元
man: manager
镜像与容器:镜像是容器的模板,容器是镜像的运行实例
Docker仓房就是存放分享镜像的地方
OCI开放容器倡议
OCI开放容器倡议(Open Container Initiative):定义了镜像是如何编写、存储和分发;Podman一开始就遵循这个协议,所以Podman可以直接运行Docker的镜像,无需额外的配置。
优势一:兼容Docker
优势二:命令行与Docker高度一致;甚至可以直接
alias docker=podman
设置别名,来由Docker过渡到podman,降低学习成本
Docker与Podman
docker依赖一个通常由root用户启动的守护进程dockerd(守护进程:是一种在操作系统后台长期静默运行的特殊程序)
containd:容器运行时,可以简单理解成控制容器的软件
runc:低级别容器运行时
podman是一个轻量级命令行工具,没有守护进程执行Podman命令时是直接调用runc与操作系统内核进行交互管理容器(更安全、更灵活)
原生Pod支持
Pod是一个k8s中的概念,是k8s的核心调度单元,一个Pod由一个或多个紧密耦合的容器组成。Podman使用Pod批量管理多个容器;对比Docker,Podman中的Pod是代替了Docker中的Docker compose
的功能,用来统一管理多个容器,和k8s亲和度更高,可以无缝切换到k8s上运行
1 | 创建Pod |
- 示例中ip地址使用localhost是由于两个容器处于同一个Pod中,他们的IP地址完全一样的,Pod的网路是宿主机内部的一个子网,和宿主机是桥接的关系。
Podman开机自启
Podman没有守护进程,无法做法开启自动启动Pod或者多个容器,可以借助linux的守护进程systemd实现
1 | 使用podman生成一个systemd的配置文件 |
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果