Podman介绍
Podman全称Pod Manager(珀德,迈那吉儿),灵感来自Kubernetes(库博内茨)的Pod概念,是由RedHat主导开发的容器运行管理工具,用来替代Docker,功能上和Docker基本一致,可直接替代Docker管理容器和镜像。无需守护进程,支持root权限运行,Podman的架构更轻量、更安全。

| 特性 | Podman | Docker |
|---|---|---|
| 守护进程 | 无-不需要 | 必须运行 |
| 默认权限 | rootless模式 | 操作需root权限 |
| Swarm | 不支持 | 原生支持 |
| Kubernetes | 直接生成YAML/集成 | 需额外配置 |
| 兼容性 | 兼容docker | 不兼容Podman |
| 系统集成 | 原生支持,可一键生成服务 | 需额外配置 |
| 跨平台 | Podman Desktop(Windows/Mac) | Docker Desktop(Windows/Mac) |
| 企业支持 | Red Hat OpenShift | Docker Enterprise |

#普通用户直接运行,无需配置
podman run -d nginx
#容器进程就是当前用户子进程
ps aux | grep nginx
#显示为当前UID,非rootDocker
#默认需要root或docker组(有root等效风险)
sudo docker run -d nginx
#Rootless实验性,需复杂配置
dockerd-rootless-setuptool.sh install2.Pod支持(Kubernetes原生)
Podman直接支持Pod概念
#创建 Pod(类似Kubernetes Pod)
podman pod create --name mypod -p 8080:80
#在Pod中添加容器
podman run -d --pod mypod --name frontend nginx
podman run -d --pod mypod --name backend myapp
#查看Pod
podman pod ps
podman pod inspect mypod
#生成Kubernetes YAML
podman generate kube mypod > deployment.yaml
#直接部署到OpenShift/K8s
podman play kube deployment.yamlDocker
无原生Pod概念,需借助docker-compose或外部编排。
3.Systemd集成
Podman原生支持生成systemd单元
#容器作为系统服务运行
podman generate systemd --new --name mycontainer > /etc/systemd/system/mycontainer.service
systemctl enable --now mycontainerDocker
需手动编写或使用第三方工具。
| 操作 | Podman | Docker |
|---|---|---|
| 运行容器 | podman run -d nginx | docker run -d nginx |
| 查看容器 | podman ps | docker ps |
| 构建镜像 | podman build -t myimg . | docker build -t myimg . |
| 拉取镜像 | podman pull nginx | docker pull nginx |
| 查看日志 | podman logs | docker logs |
| 进入容器 | podman exec -it | docker exec -it |
| 创建Pod | podman pod create | 无 |
| 生成K8s YAML | podman generate kube | 无 |
#拉取同一个Nginx镜像
docker pull nginx# Docker
podman pull nginx# Podman
#以普通用户身份启动容器
#podman无需sudo
#Docker同样操作通常需:sudo docker run ...
podman run -d -p 8080:80 nginx
#创建容器(Podman原生支持)
podman pod create --name myapp
podman run -d --pod myapp nginx
podman run -d --pod myapp redis| 场景 | 推荐 | 原因 |
|---|---|---|
| 个人开发学习 | Podman | 无需守护进程,更安全 |
| 企业生产服务 | Podman | Red Hat官方支持,OpenShift集成 |
| 需要Docker Swarm | Docker | Podman不支持Swarm |
| Windows/Mac桌面使用 | Docker Desktop | Podman Desktop用户体验尚未完善 |
| 已有Docker脚本 | Podman | 兼容性好,迁移成本低 |
| Kubernetes原生开发 | Podman | YAML流程完善 |
| 涉及GPU | 两者都可以 | 无太多差异 |
Bagisto一个功能强大的电商平台系统,采用Laravel框架和Vue.js开发,支持前后端分离,适用于跨境电商、海外电商平台等行业。Bagisto的安装对系统和环境有特定的要求,具体如下:服务器:CPU:建议4核以上配置;内存:建议...
在使用前端jquery插件,tablesorter做表格排序和搜索时,遇到了一个问题,就是已经加载了jquery.tablesorter.js和jquery.tablesorter.widgets.js,但是在表格中的input输入关键...
有客户咨询丁老师,他们公司有一个APP,希望也上架微信小程序、抖音程序,想问下APP可以转换为小程序吗?丁老师来给你解答。APP是否可以转小程序?可以。只要有该APP的源码,就可以实现开发转换为微信、抖音、小红书、支付宝、百度等小程序。...
有同学咨询丁老师,在使用宝塔面板进行数据库备份的时候,提示"数据库备份失败,原因:备份文件中缺少表:xxx",是怎么回事呢?今天丁老师教你解决这个问题。问题分析数据库是Mysql,线上网站系统使用正常,但就在备份数据...
二维码码有三个参数: 数据类型、大小(“像素 ”数)和纠错级别。能存储多少信息也取决于这些参数。例如,纠错级别越低,可存储的信息越多,但代码越难被读者识别。最大尺寸和最小纠错值如下:最大字符数 7089个字符(纯数字)字母数字 4296个字...
国外很多VPS购买后,只有密码,没有登录账号,如何登录呢?我们以one.com为例,购买了VPS后,只能设置密码,但是用root,也无法登录,是怎么回事呢?查了官方文档,原来修改的VPS密码,不是root的,这个VPS默认的账号是admin...
上一期我们讲到了《微信小程序发布后多久可以能被搜索到?》,我们已经知道了微信小程序在上架后,多久能被搜索到的一个时间范围。本期我们讲一下,微信小程序被搜索,如何提升排名,是搜索结果靠前的方法。首先,微信小程序的搜索结果排名,并没有一个固定的...
fontawesome所有图标class类名单,适用于4.7.0版本。总计有593个图标class类(包含别名):fa-500pxfa-address-bookfa-address-book-ofa-address-cardfa-addre...