podman容器工具的具体使用

 更新时间:2022年01月26日 15:42:21   作者:willblog  
本文主要介绍了podman容器工具的具体使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

podman简介

Podman是一个开源项目,可在大多数Linux平台上使用并开源在GitHub上。Podman是一个无守护进程的容器引擎,用于在Linux系统上开发,管理和运行Open Container Initiative(OCI)容器和容器镜像。Podman提供了一个与Docker兼容的命令行前端,它可以简单地作为Docker cli,简单地说你可以直接添加别名:alias docker = podman来使用podman。

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

官网:https://podman.io/
安装文档:https://github.com/containers/libpod/blob/master/install.md
配置参考:https://github.com/containers/image/blob/master/docs/containers-registries.conf.5.md

Podman和Docker的主要区别是什么?

  • dockers在实现CRI的时候,它需要一个守护进程,其次需要以root运行,因此这也带来了安全隐患。
  • podman不需要守护程序,也不需要root用户运行,从逻辑架构上,比docker更加合理。
  • 在docker的运行体系中,需要多个daemon才能调用到OCI的实现RunC。
  • 在容器管理的链路中,Docker Engine的实现就是dockerd
  • daemon,它在linux中需要以root运行,dockerd调用containerd,containerd调用containerd-shim,然后才能调用runC。顾名思义shim起的作用也就是“垫片”,避免父进程退出影响容器的运训
  • podman直接调用OCI,runtime(runC),通过common作为容器进程的管理工具,但不需要dockerd这种以root身份运行的守护进程。
  • 在podman体系中,有个称之为common的守护进程,其运行路径通常是/usr/libexec/podman/conmon,它是各个容器进程的父进程,每个容器各有一个,common的父则通常是1号进程。podman中的common其实相当于docker体系中的containerd-shim。

podman安装使用

使用centos官方yum源进行安装

$ yum install -y podman
$ podman version
Version:            1.4.4
RemoteAPI Version:  1
Go Version:         go1.10.3
OS/Arch:            linux/amd64

配置镜像加速

这里使用阿里云镜像加速器

cp /etc/containers/registries.conf{,.bak}

cat > /etc/containers/registries.conf << EOF
unqualified-search-registries = ["docker.io"]

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

拉取镜像

$ podman pull centos
Trying to pull docker.io/library/centos...Getting image source signatures
Copying blob 8ba884070f61 done
Copying config 9f38484d22 done
Writing manifest to image destination
Storing signatures
9f38484d220fa527b1fb19747638497179500a1bed8bf0498eb788229229e6e1

运行容器

$ podman images
REPOSITORY                 TAG      IMAGE ID       CREATED        SIZE
docker.io/library/centos   latest   9f38484d220f   4 months ago   209 MB
$ podman run -itd --name test centos sleep 3600
1fc033bb22096008049709d70869d54e3fa9e4d72c6d098f4b5601fd6747a9b9
$ podman ps
CONTAINER ID  IMAGE                            COMMAND     CREATED        STATUS            PORTS  NAMES
1fc033bb2209  docker.io/library/centos:latest  sleep 3600  7 seconds ago  Up 6 seconds ago         test

配置为别名

$ echo "alias docker=podman" >> .bashrc
$ source .bashrc

$ docker ps -a
CONTAINER ID  IMAGE                            COMMAND     CREATED        STATUS            PORTS  NAMES
1fc033bb2209  docker.io/library/centos:latest  sleep 3600  7 minutes ago  Up 7 minutes ago         test

相关工具

Buildah

Buildah专注于构建OCI镜像。 Buildah的命令复制了Dockerfile中的所有命令。可以使用Dockerfiles构建镜像,并且不需要任何root权限。 Buildah的最终目标是提供更低级别的coreutils界面来构建图像。Buildah也支持非Dockerfiles构建镜像,可以允许将其他脚本语言集成到构建过程中。 Buildah遵循一个简单的fork-exec模型,不以守护进程运行,但它基于golang中的综合API,可以存储到其他工具中。虽然Podman也可以用户构建Docker镜像,单构建速度较慢。

Skopeo

Skopeo是一个工具,允许我们通过push,pull和复制镜像来处理Docker和OC镜像。

到此这篇关于podman容器工具的具体使用的文章就介绍到这了,更多相关podman使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 自定义资源CRD使用介绍

    自定义资源CRD使用介绍

    这篇文章主要为大家介绍了自定义资源CRD的使用示例介绍,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • k8s安装calico时如何选择网卡问题

    k8s安装calico时如何选择网卡问题

    这篇文章主要介绍了k8s安装calico时如何选择网卡问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • k8s安装CICD devtron过程详解

    k8s安装CICD devtron过程详解

    这篇文章主要为大家介绍了k8s安装CICD devtron过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • 浅谈Spark RDD API中的Map和Reduce

    浅谈Spark RDD API中的Map和Reduce

    rdd是什么?如何创建?什么是map和reduce?本文就这些问题向大家作了一些分析,供大家参考,如有不足,欢迎指出。
    2017-10-10
  • Kubernetes 权限管理认证鉴权详解

    Kubernetes 权限管理认证鉴权详解

    这篇文章主要为大家介绍了Kubernetes 权限管理认证鉴权详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • k8s pod和service网络暴露详解

    k8s pod和service网络暴露详解

    这篇文章主要介绍了借助iptables的路由转发功能,打通k8s集群内的pod和service网络,与外部网络联通,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • Kubekey安装Kubernetes-1.24.8的详细过程

    Kubekey安装Kubernetes-1.24.8的详细过程

    这篇文章主要介绍了Kubekey安装Kubernetes-1.24.8的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • k8s中pod不停重启问题定位原因与解决方法

    k8s中pod不停重启问题定位原因与解决方法

    这篇文章主要给大家介绍了关于k8s中pod不停重启问题定位原因与解决方法的相关资料,Kubernetes是一款高度可扩展、可靠的容器编排和管理系统,它简化了容器的部署、管理和自动化操作,需要的朋友可以参考下
    2023-08-08
  • kubernetes k8s入门定义一个Pod

    kubernetes k8s入门定义一个Pod

    这篇文章主要为大家介绍了k8s入门定义一个Pod以及破底的定义内容详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多计步,早日升职加薪
    2022-03-03
  • CentOS 8.2 k8s 基础环境配置

    CentOS 8.2 k8s 基础环境配置

    这篇文章主要介绍了CentOS 8.2 k8s 基础环境配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-10-10

最新评论