Podman安装与运用

Podman 是一个开源的 Linux 工具,提供 Docker 类似的 CLI,用于管理和运行 OCI 容器。它支持非特权用户运行容器,通过 libpod 库管理 pod、容器、镜像和卷。本文介绍了 Podman 的安装、基本命令,以及如何运行、检查、检查点和恢复容器。
摘要由CSDN通过智能技术生成

什么是 Podman?

Podman是一个无守护程序、开源的 Linux 原生工具,旨在使用 Open Containers Initiative ( OCI )容器和容器映像轻松查找、运行、构建、共享和部署应用程序。Podman 提供了任何使用过 Docker容器引擎的人都熟悉的命令行界面 (CLI) 。大多数用户可以简单地将 Docker 别名为 Podman(别名 docker=podman)而不会出现任何问题。与其他常见的容器引擎(Docker、CRI-O、containerd)类似,Podman 依赖于符合 OCI 的容器运行时(runc、crun、runv 等)与操作系统交互并创建正在运行的容器。这使得 Podman 创建的正在运行的容器与任何其他常见容器引擎创建的容器几乎没有区别。

Podman 控制下的容器可以由 root 或非特权用户运行。Podman 使用libpod库管理整个容器生态系统,包括 pod、容器、容器映像和容器卷。Podman 专注于帮助您维护和修改 OCI 容器镜像的所有命令和功能,例如拉取和标记。它允许您在生产环境中创建、运行和维护这些容器和容器映像。

有一个 RESTFul API 来管理容器。我们还有一个可以与 RESTFul 服务交互的远程 Podman 客户端。我们目前支持 Linux、Mac 和 Windows 上的客户端。RESTFul 服务仅在 Linux 上受支持。

Podman安装方法

[root@localhost ~]# yum list all | grep podman
cockpit-podman.noarch                                  25-3.module_el8.4.0+575+63b40ad7                           @AppStream
podman.x86_64                                          2.1.1-3.module_el8.4.0+575+63b40ad7                        @AppStream
podman-catatonit.x86_64                                2.1.1-3.module_el8.4.0+575+63b40ad7                        @AppStream
cockpit-podman.noarch                                  43-1.module_el8.7.0+1106+45480ee0                          appstream 
pcp-pmda-podman.x86_64                                 5.3.7-7.el8                                                appstream 
podman.x86_64                                          2:4.0.2-1.module_el8.7.0+1106+45480ee0                     appstream 
podman-catatonit.x86_64                                2:4.0.2-1.module_el8.7.0+1106+45480ee0                     appstream 
podman-docker.noarch                                   2:4.0.2-1.module_el8.7.0+1106+45480ee0                     appstream 
podman-gvproxy.x86_64                                  2:4.0.2-1.module_el8.7.0+1106+45480ee0                     appstream 
podman-plugins.x86_64                                  2:4.0.2-1.module_el8.7.0+1106+45480ee0                     appstream 
podman-remote.x86_64                                   2:4.0.2-1.module_el8.7.0+1106+45480ee0                     appstream 
podman-tests.x86_64                                    2:4.0.2-1.module_el8.7.0+1106+45480ee0                     appstream 
python3-podman.noarch                                  4.0.0-1.module_el8.7.0+1106+45480ee0                       appstream 
[root@localhost ~]# 

可以看出已经安装成功
[root@localhost ~]# which podman
/usr/bin/podman
[root@localhost ~]# 


#podman不需要向docker一样需要启动,可以直接使用

安装完成之后可能会出现的报错

[root@localhost ~]# podman images
podman: symbol lookup error: podman: undefined symbol: seccomp_notify_fd
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# 


由于seccomp安装时不是最新的版本,这是需要安装最新的版本
[root@localhost ~]# rpm -qa | grep seccomp
libseccomp-2.4.3-1.el8.x86_64
[root@localhost ~]# 
[root@localhost ~]# yum list all | grep seccomp 
libseccomp.x86_64                                      2.4.3-1.el8                                                @anaconda 
libseccomp.i686                                        2.5.2-1.el8                                                baseos    
libseccomp.x86_64                                      2.5.2-1.el8                                                baseos    
libseccomp-devel.i686                                  2.5.2-1.el8                                                appstream 
libseccomp-devel.x86_64                                2.5.2-1.el8                                                appstream 
oci-seccomp-bpf-hook.x86_64                            1.2.3-3.module_el8.6.0+926+8bef8ae7                        appstream 
[root@localhost ~]# 

对libseccomp进行升级
[root@localhost ~]# yum -y update libseccomp

这里显示conmon不是最新版本,安装最新版本
[root@localhost ~]# podman images
WARN[0000] Conmon at /usr/bin/conmon invalid: outdated conmon version 
WARN[0000] Conmon at /usr/bin/conmon is invalid: outdated conmon version 
Error: please update to v2.0.24 or later: outdated conmon version

[root@localhost ~]# 
[root@localhost ~]# rpm -qa | grep conmon
conmon-2.0.21-1.module_el8.4.0+575+63b40ad7.x86_64
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# yum list all | grep conmon
conmon.x86_64                                          2:2.0.21-1.module_el8.4.0+575+63b40ad7                     @AppStream
conmon.x86_64                                          2:2.1.0-1.module_el8.7.0+1106+45480ee0                     appstream 
[root@localhost ~]# 
[root@localhost ~]# yum -y update conmon

最后显示成功
[root@localhost ~]# podman images
REPOSITORY  TAG         IMAGE ID    CREATED     SIZE

添加加速器

[root@localhost ~]# cd /etc/containers/
[root@localhost containers]# ls
certs.d  oci  policy.json  registries.conf  registries.conf.d  registries.d  storage.conf
[root@localhost containers]# vim registries.conf

......
[[registry]]
prefix = "docker.io"
location = "ivknqowi.mirror.aliyuncs.com"


......
# # 1. example-mirror-0.local/mirror-for-foo/image:latest
# # 2. example-mirror-1.local/mirrors/foo/image:latest
# # 3. internal-registry-for-example.net/bar/image:latest
# # in order, and use the first one that exists.
short-name-mode = "permissive"    短名称模式




[root@localhost ~]# podman info 
······

 Blocked: false
    Insecure: false
    Location: ivknqowi.mirror.aliyuncs.com    #已经配置成功
    MirrorByDigestOnly: false

    ······

可以正常上传镜像
[root@localhost ~]# podman pull centos
Resolved "centos" as an alias (/etc/containers/registries.conf.d/000-shortnames.conf)
Trying to pull quay.io/centos/centos:latest...
Getting image source signatures
Copying 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值