开源的容器运行时项目 Podman

news/2024/7/10 22:08:06 标签: 开源, podman, docker

本心、输入输出、结果

文章目录

  • 开源的容器运行时项目 Podman
    • 前言
      • Podman 简介
      • Podman 与 Docker 的区别
      • Podman 在使用上和 Docker 有什么区别
        • 从构建者角度分析 Podman 在使用上和 Docker 有什么区别
        • 从使用者角度分析 Podman 在使用上和 Docker 有什么区别
      • Podman 常用命令
        • 容器
        • 镜像
        • 安装 Podman
      • 使用 Podman
      • 弘扬爱国精神

开源的容器运行时项目 Podman


编辑:简简单单 Online zuozuo
地址:https://blog.csdn.net/qq_15071263

在这里插入图片描述

前言

开源的容器运行时项目 Podman

在这里插入图片描述

Podman 简介

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

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

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

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

Podman 官网地址

在这里插入图片描述

Podman 与 Docker 的区别

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

在这里插入图片描述

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

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

从构建者角度分析 Podman 在使用上和 Docker 有什么区别
  • Podman 的默认软件与 Docker 区别不大
  • Podman 比 Docker 简单
  • 调试方面需要适应
从使用者角度分析 Podman 在使用上和 Docker 有什么区别
  • Podman 命令使用上与 Docker 基本兼容
  • Podman 、Docker 都包含容器运行时、本地镜像、镜像仓库
  • Podman 命令行与 Docker 类似
  • Podman 可以使用 docker.io 作为镜像仓库

在这里插入图片描述

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']

在这里插入图片描述

使用 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

弘扬爱国精神

在这里插入图片描述


http://www.niftyadmin.cn/n/5108034.html

相关文章

单链表算法经典OJ题

目录 1、移除链表元素 2、翻转链表 3、合并两个有序链表 4、获取链表的中间结点 5、环形链表解决约瑟夫问题 6、分割链表 1、移除链表元素 203. 移除链表元素 - 力扣(LeetCode) typedef struct ListNode LSNode; struct ListNode* remove…

vue3的<script setup>这的setup是什么意思,做什么用的

在 Vue 3 中&#xff0c;<script setup> 是一个实验性的 API&#xff0c;用于使用 Composition API 编写组件。它允许你在一个更简洁、更有组织的方式中编写组件。这种语法能够让你直接在 <script setup> 标签内使用 ref、computed、watch 等 Composition API 的函…

为什么需要 SOME/IP

传统汽车协议的问题 如今的汽车不仅仅是通勤和交通工具&#xff0c;车辆现在设计得功能齐全&#xff0c;使旅程成为一种豪华体验。所有这些都是通过将先进的电子技术与车辆的发动机控制单元&#xff08;ECU&#xff09;集成而实现的。这种新的情景显著改变了ECU的不同单元之间…

LCR 177. 撞色搭配

LCR 177. 撞色搭配 LCR 177. 撞色搭配 迷你游戏之寻找两个单身狗 int* sockCollocation(int* sockets, int socketsSize, int* returnSize) {int* arr (int*)malloc(2 * sizeof(int));int ret 0;for (int i 0; i < socketsSize; i){ret ^ sockets[i];}int pos 0;for…

使用Java语言深度探索数据结构中的递归:完美结合详解与示例代码

版本说明 当前版本号[20231020]。 版本修改说明20231020初版 目录 文章目录 版本说明目录2.3 递归1) 概述定义原理思路 2&#xff09;单路递归 Single RecursionE01. 阶乘伪代码拆解演示 E02. 反向打印字符串伪代码拆解演示 E03. 二分查找&#xff08;单路递归&#xff09;E…

[环境配置]anaconda3的base环境与python版本对应关系表

anaconda3版本 base环境对应python版本 Anaconda3-2018.12-Windows-x86_64.exe 3.7 Anaconda3-2019.03-Windows-x86_64.exe 3.7 Anaconda3-2019.07-Windows-x86_64.exe 3.7 Anaconda3-2019.10-Windows-x86_64.exe 3.7 Anaconda3-2020.02-Windows-x86_64.exe 3.7 An…

Android推送问题排查

针对MobPush智能推送服务在使用过程中可能出现的问题&#xff0c;本文为各位开发者们带来了针对MobPush安卓端推送问题的解决办法。 TCP在线推送排查 排查TCP在线收不到推送时&#xff0c;我们先通过客户端的RegistrationId接口获取设备的唯一标识 示例&#xff1a; MobPush…

【算法|动态规划No.25】leetcode LCR 020. 回文子串

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…