什么是Podman?
Podman是一个开源项目,可在大多数Linux平台上使用,并且位于GitHub上。Podman是一种无守护程序的容器引擎,用于在Linux系统上开发,管理和运行Open Container Initiative(OCI)容器和容器映像。Podman提供了与Docker兼容的命令行前端,该前端可以简单地为Docker cli别名,别名为docker = podman。Podman控制下的容器既可以由root用户运行,也可以由非特权用户运行Podman使用libpod库管理整个容器生态系统,其中包括容器,容器,容器映像和容器卷。Podman专门研究可帮助您维护和修改OCI容器映像的所有命令和功能,例如提取和标记。它允许您在生产环境中创建,运行和维护从这些映像创建的那些容器。
Podman服务仅在Linux平台上运行,但是目前正在开发REST API和客户端,这将允许Mac和Windows平台调用该服务。当前有一个基于Varlink的远程客户端,该客户端可在Mac或Windows平台上运行,允许远程客户端与Linux平台上的Podman服务器进行操作。除了这些客户端,还有一个Mac客户端。注意:REST API完成后,将不推荐使用Varlink远程客户端。Podman还可以基于容器或Pod生成Kubernetes YAML
安装Podman和执行一些基本命令
Centos Podman在CentOS 7的默认Extras仓库和CentOS 8和Stream的AppStream仓库中可用。尽管可用版本通常落后于最新的上游发行版,但它仍然是生产环境的首选版本。
sudo yum -y install podman
这些软件包尚未通过正式的Red Hat QA流程,因此可能不适用于生产环境。安装最新版这些软件包尚未通过正式的Red Hat QA流程,因此可能不适用于生产环境。
# CentOS 7
sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/CentOS_7/devel:kubic:libcontainers:stable.repo
sudo yum -y install podman
# CentOS 8
sudo dnf -y module disable container-tools
sudo dnf -y install 'dnf-command(copr)'
sudo dnf -y copr enable rhcontainerbot/container-selinux
sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/CentOS_8/devel:kubic:libcontainers:stable.repo
sudo dnf -y install podman
sudo dnf -y update
# CentOS Stream
sudo dnf -y module disable container-tools
sudo dnf -y install 'dnf-command(copr)'
sudo dnf -y copr enable rhcontainerbot/container-selinux
sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/CentOS_8_Stream/devel:kubic:libcontainers:stable.repo
sudo dnf -y install podman
sudo dnf -y update
可以使用帮助:
$ podman --help
$ podman --help
$ man podman
$ man podman-
搜索、拉取列出镜像
podman search nginx |head -n 5
podman image pull nginx
Podman 为了方便用户从 Docker 迁移过来,Podman 支持从本地的 docker daemon 中直接拉取镜像
podman pull docker-daemon:harbor.xxx.com/xx/app:0.5
列出镜像
podman images
运行容器
podman run -dt -p 8080:80/tcp docker.io/library/nginx
由于容器-d以podman run命令中的表示的分离模式运行,因此Podman将在执行命令后打印容器ID。该-t还增加了一个伪终端以交互的shell中运行任意命令。由于该容器以无根模式运行,因此没有为该容器分配IP地址。
$ podman inspect -l | grep IPAddress
"IPAddress": "",
查看容器的日志
podman logs -l
查看容器的PID
podman top -l
Podman 语法兼容Docker不多说
Podman使用阿里云容器镜像
Podman引入了一个注册表的概念,注册表就是包括 docker.io 在内的多个容器镜像源,默认的有 redhat docker fedora centos quay Podman 默认注册表配置文件在 /etc/containers/registries.conf
[root@43-c60403747-0048-1129483 ~]# cat /etc/containers/registries.conf
unqualified-search-registries = ["docker.io"]
[[registry]]
prefix = "docker.io"
location = "***.mirror.aliyuncs.com"
insecure = false