开源的容器运行时项目 Podman

举报
简简单单Onlinezuozuo 发表于 2023/10/22 14:54:17 2023/10/22
【摘要】 本心、输入输出、结果 开源的容器运行时项目 Podman编辑:简简单单 Online zuozuo地址:https://bbs.huaweicloud.com/community/usersnew/id_1645157907927782 前言开源的容器运行时项目 Podman Podman 简介Podman 是一个开源的容器运行时项目,可在大多数 Linux 平台上使用。Podman 提供与...

本心、输入输出、结果

开源的容器运行时项目 Podman


编辑:简简单单 Online zuozuo
地址:https://bbs.huaweicloud.com/community/usersnew/id_1645157907927782

前言

开源的容器运行时项目 Podman

image.png

Podman 简介

Podman 是一个开源的容器运行时项目,可在大多数 Linux 平台上使用。

Podman 提供与 Docker 非常相似的功能。正如前面提到的那样,它不需要在你的系统上运行任何守护进程,并且它也可以在没有 root
权限的情况下运行。

Podman 可以管理和运行任何符合 OCI(Open Container Initiative)规范的容器和容器镜像

Podman 提供了一个与 Docker 兼容的命令行前端来管理 Docker 镜像

Podman 官网地址

image.png

Podman 与 Docker 的区别

  • CRI 实现上,Docker 需要 root 权限、需要守护进程,Podman 不需要
  • RunC 上,Docker 需要通过多个 daemon 才可以调用 OCI 的 RunC,Podman 直接调用 RunC
  • 守护进程上,Docker 守护进程, Podman 的守护进程是 /usr/libexec/podman/conmon,父进程是 1 号进程

image.png

Podman 在使用上和 Docker 有什么区别

Podman 定位上与 Docker 兼容,使用上也比较接近 Docker

从构建者角度分析 Podman 在使用上和 Docker 有什么区别

  • Podman 的默认软件与 Docker 区别不大
  • Podman 比 Docker 简单
  • 调试方面需要适应

从使用者角度分析 Podman 在使用上和 Docker 有什么区别

  • Podman 命令使用上与 Docker 基本兼容
  • Podman 、Docker 都包含容器运行时、本地镜像、镜像仓库
  • Podman 命令行与 Docker 类似
  • Podman 可以使用 docker.io 作为镜像仓库

image.png

Podman 常用命令

容器

podman run         #创建并启动容器
podman start       #启动容器
podman ps          #查看容器
podman stop        #终止容器
podman restart     #重启容器
podman attach      #进入容器
podman exec        #进入容器
podman export      #导出容器
podman import      #导入容器快照
podman rm          #删除容器
podman logs        #查看日志

镜像

podman search             #检索镜像
docke pull                #获取镜像
podman images             #列出镜像
podman image Is           #列出镜像
podman rmi                #删除镜像
podman image rm           #删除镜像
podman save               #导出镜像
podman load               #导入镜像
podmanfile                #定制镜像(三个)
 podman build              #构建镜像
    podman run              #运行镜像
    podmanfile              #常用指令(四个)
     COPY                    #复制文件
        ADD                     #高级复制
        CMD                     #容器启动命令
        ENV                     #环境变量
        EXPOSE                  #暴露端口

安装 Podman

// 安装podman
[root@localhost ~]# yum -y install podman

// 仓库配置
[root@localhost ~]# vim /etc/containers/registries.conf
[registries.search]
registries = ['registry.access.redhat.com', 'registry.redhat.io', 'docker.io'] //这个是查找,从这三个地方查找,如果只留一个,则只在一个源里查找
unqualified-search-registries = ["registry.fedoraproject.org", "registry.access.redhat.com", "registry.centos.org", "docker.io"] //这里也要改为一个

[registries.insecure]
registries = [10.0.0.1]   //这里写那些http的仓库,比如harbor

// 配置加速器
[registries.search]
registries = ['https://l9h8fu9j.mirror.aliyuncs.com','docker.io']

image.png

使用 Podman

Podman 的指令跟 Docker 大多数都是相同的

运行一个容器

[root@localhost ~]# podman run -d --name httpd docker.io/library/httpd
Trying to pull docker.io/library/httpd...
Getting image source signatures
Copying blob e5ae68f74026 done
Copying blob d3576f2b6317 done
Copying blob bc36ee1127ec done
Copying blob f1aa5f54b226 done
Copying blob aa379c0cedc2 done
Copying config ea28e1b82f done
Writing manifest to image destination
Storing signatures
0492e405b9ecb05e6e6be1fec0ac1a8b6ba3ff949df259b45146037b5f355035

// 查看镜像
[root@localhost ~]# podman images
REPOSITORY                  TAG      IMAGE ID       CREATED       SIZE
docker.io/library/httpd     latest   ea28e1b82f31   11 days ago   148 MB

展示运行的容器

[root@localhost ~]# podman ps
CONTAINER ID  IMAGE                             COMMAND           CREATED             STATUS                 PORTS  NAMES
0492e405b9ec  docker.io/library/httpd:latest    httpd-foreground  About a minute ago  Up About a minute ago         httpd
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。