容器界新宠:Podman 与 Docker 的详细对比,谁才是容器未来
今天分享一下最近两年比较火的容器容器技术:Podman。
说到容器,界新每个运维人员都知道docker,宠P才容更有些人简单地认为容器就是的对比docker,docker就是详细容器。其实Docker只是容器容器技术中的一种,只是界新它社区活跃,称霸了容器界十来年。宠P才容
虽然Docker仍然是的对比主流,但还是详细存在一些问题:
依赖常驻守护进程(dockerd),占用资源高,容器容易出故障需要 root 权限,界新安全风险较高与 systemd、宠P才容Kubernetes 的WordPress模板的对比接轨不够原生社区运作复杂,Docker 公司商业化步伐加快,详细限制更多正因如此,社区逐渐转向 Podman 等更轻量、更安全的替代方案。Docker的霸主地位已经逐渐被挑战。

Podman(Pod Manager) 是由 Red Hat 主导开发的容器运行工具,设计初衷就是:做一个不需要 daemon、支持 rootless、更接近 Kubernetes 的 Docker 替代者。
(1) 特性对比
特性
Docker
Podman
是否需要后台守护进程
是(dockerd)
无守护进程
是否原生支持无 root 运行
需配置
默认支持
CLI 命令兼容性
兼容兼容
支持 Pod 模型
支持
支持
K8s YAML 生成能力
依赖额外工具
原生
安全性
相对较弱
更强(进程级隔离、SELinux 支持)
(2) 安装podman
在大多数 Linux 系统上可以直接安装:
复制# Ubuntu / Debian sudo apt-get -y install podman # CentOS / RHEL / Fedora sudo dnf -y install podman1.2.3.4.5.检查版本:
复制podman version1.
Podman 的亿华云 CLI 命令设计与 Docker 几乎一样,你甚至可以把 docker 替换为 podman 直接执行大多数命令。我这里列出常用的命令对比:
功能
Docker 命令
Podman 命令
查看版本
docker version
podman version
拉取镜像
docker pull nginx
podman pull nginx
查看镜像
docker images
podman images
运行容器
docker run -it nginx
podman run -it nginx
列出容器
docker ps
podman ps
查看所有容器
docker ps -a
podman ps -a
停止容器
docker stop ID/NAME
podman stop ID/NAME
启动容器
docker start ID/NAME
podman start ID/NAME
删除容器
docker rm ID/NAME
podman rm ID/NAME
删除镜像
docker rmi IMAGE
podman rmi IMAGE
构建镜像
docker build -t myapp .
podman build -t myapp .
容器内执行命令
docker exec -it ID bash
podman exec -it ID bash
查看日志
docker logs ID/NAME
podman logs ID/NAME
3. Podman 的高级特性:Podman 不止是“照抄” Docker,它还有自己的高级玩法,也就是Docker无法做到的事情。
(1) Pod管理
你可以像 Kubernetes 一样用 Pod 运行多个容器:
复制# 创建 Pod podman pod create --name webpod -p 8080:80 # 在 Pod 中运行 nginx podman run -dt --pod=webpod nginx1.2.3.4.5.查看所有 Pod:
复制podman pod ps1.(2) 自动生成 K8s YAML 文件
复制podman generate kube webpod > webpod.yaml1.一键生成 YAML 文件,用于部署到 Kubernetes,非常适合开发→测试→上线流程。
(3) rootless 运行容器
在普通用户下直接运行:
复制podman run -it busybox1.不需要 sudo,安全性暴增!
如果你之前已经熟悉Docker,学习Podman简直不要太简单了,主要区分一些关键点就行,就目前来看,Podman还真有可能是未来的趋势。b2b信息网