Podman是redhat发行的容器管理工具,类似于docker,但是没有守护进程。它不仅可以管理OCI容器,还可以管理pod, 这也是和docker的最大差别吧.
Podman提供了一个指令和docker十分类似的命令行前端,有87%的指令都和docker cli相同,基本上把docker命令套用在podman上就可以用。在RHEL8中,直接预装了podman用来替代之前的docker
Podman和docker比较有啥好处?
1)更加rootless, 尽管docker也可以rootless, 但是podman设计之初就开始支持;
2)没有daemon, 这使得podman在结合namespace和cgroup一起使用会更加灵活;
3)和k8s基本一样的pod, 一样支持infra容器,这使得一些简单的容器编排工作, podman也可以简单实现;
4)在systemd service集成方面, 由于没有deamon, podman通过generate子命令, 可以生成systemd service配置, 来管理容器和pod的作为服务启动.
5)Podman可以生成kubectl的yaml配置文件, 也通过podman play kube来运行k8s的配置, 也可以作为k8s的一个过渡吧, 而且podman也没有去实现CRI的计划, 这应该也是官方的态度, 不会参和到k8s生态中, 保持自己的轻量化工具的定位吧;
6)Podman通过ssh隧道或者tcp端口, 可以连接到远程机器上的podman service, 从而实现远程机器上的容器和 pod 管理.
所以podman提供了一些轻量化而又灵活的功能特性,满足容器化以及小批量服务器的场景。
下面我在Rocky8里面安装并使用一下podman。
安装很简单,直接yum安装即可
# yum install -y podman
查看其版本
# podman --version
查看镜像列表
# podman images
拉取指定镜像
# podman pull busybox
Resolved "busybox" as an alias (/etc/containers/registries.conf.d/000-shortnames.conf)
Trying to pull docker.io/library/busybox:latest...
Getting image source signatures
Copying blob f5b7ce95afea done
Copying config ff4a8eb070 done
Writing manifest to image destination
Storing signatures
ff4a8eb070e12018233797e865841d877a7835c4c6d5cfc52e5481995da6b2f7
查看镜像
# podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
latest ff4a8eb070e1 Less than a second ago 1.46 MB
启动容器
# podman run -itd busybox
2a4e9bd4db56971179a8f498d19caeac738dc1d3dc66cae949bde14d683a7016
查看启动的容器
# podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
latest sh 12 seconds ago Up 7 seconds ago crazy_nash :
可以看到,跟docker用法几乎一模一样。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !