podman简介与安装与常用基础命令

2023-12-17 12:20

本文主要是介绍podman简介与安装与常用基础命令,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

podman简介与安装与常用基础命令

文章目录

  • podman简介与安装与常用基础命令
    • 1 podman简介
    • 2:podman与docker的差别
    • 3:安装podman与配置
    • 4 podman容器常用基础命令
      • podman run
      • start启动容器
      • ps 查看容器
      • stop 停止容器
      • restart 重启容器
      • attch 进入容器
      • exec 进入容器
      • rm 删除容器
      • logs 查看日志
    • 5:podman镜像常用基础命令
      • search 检索镜像
      • 获取镜像
      • images 列出镜像
      • image ls 列出镜像
      • rmi 删除镜像
      • image rm 删除镜像
      • tag 标记本地镜像,将其归入某一仓库。
      • login 登录到一个镜像仓库
      • push 上传镜像

1 podman简介

Podman(Pod Manager)是一个功能齐全的容器引擎,是一个简单的无守护程序工具。Podman提供了一个与Docker-CLI类似的命令行,可以轻松地从其他容器引擎过渡,并允许管理Pod、容器和图像。简单地说: alias docker=podman 。大多数Podman命令都可以作为普通用户运行,而不需要额外的权限。

Podman在内部使用Buildah(1)创建容器映像。这两个工具共享图像(而不是容器)存储,因此每个工具都可以使用或操作对方创建的图像(但不能操作容器)。

标志的默认设置在中定义 containers.conf 。远程连接的大多数设置都使用服务器的tainers.conf,手册页中记录的情况除外。

2:podman与docker的差别

dockers在实现CRI的时候,它需要一个守护进程,以root权限运行这样会带来安全隐患,而podman不需要守护进程和root权限。
在docker的运行体系中,需要多个daemon才能调用到OCI的实现RunC。
在容器管理的链路中,Docker Engine的实现就是dockerd
daemon,它在linux中需要以root运行,dockerd调用containerd,containerd调用containerd-shim,然后才能调用runC。顾名思义shim起的作用也就是“垫片”,避免父进程退出影响容器的运行
在这里插入图片描述

3:安装podman与配置

安装podman

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

配置podman

[root@localhost ~]# vim /etc/containers/registries.conf
# unqualified-search-registries = ["registry.fedoraproject.org", "registry.access.redhat.com", "registry.centos.org", "docker.io"]unqualified-search-registries = ["docker.io"]
[[registry]]
prefix = "docker.io"
location = "wlfs9l74.mirror.aliyuncs.com"

4 podman容器常用基础命令

podman run

创建并启动容器

[root@localhost ~]# podman run --name httpd busybox:latest

start启动容器

[root@localhost ~]# podman ps -a
CONTAINER ID  IMAGE                             COMMAND     CREATED             STATUS            PORTS       NAMES
d36984b8d048  docker.io/library/busybox:latest  sh          About a minute ago  Up 3 seconds ago              httpd

ps 查看容器


[root@localhost ~]# podman ps -a
CONTAINER ID  IMAGE                             COMMAND     CREATED         STATUS             PORTS       NAMES
d36984b8d048  docker.io/library/busybox:latest  sh          12 seconds ago  Up 12 seconds ago              httpd

stop 停止容器


[root@localhost ~]# podman ps -a
CONTAINER ID  IMAGE                             COMMAND     CREATED         STATUS             PORTS       NAMES
d36984b8d048  docker.io/library/busybox:latest  sh          12 seconds ago  Up 12 seconds ago              httpd
[root@localhost ~]# podman stop httpd
[root@localhost ~]# podman ps -a
CONTAINER ID  IMAGE                             COMMAND     CREATED         STATUS                      PORTS       NAMES
d36984b8d048  docker.io/library/busybox:latest  sh          41 seconds ago  Exited (137) 8 seconds ago              httpd

restart 重启容器


[root@localhost ~]# podman ps -a
CONTAINER ID  IMAGE                             COMMAND     CREATED        STATUS                 PORTS       NAMES
d36984b8d048  docker.io/library/busybox:latest  sh          2 minutes ago  Up About a minute ago              httpd
[root@localhost ~]# podman  restart httpd
[root@localhost ~]# podman ps -a
CONTAINER ID  IMAGE                             COMMAND     CREATED        STATUS           PORTS       NAMES
d36984b8d048  docker.io/library/busybox:latest  sh          2 minutes ago  Up 1 second ago              httpd

attch 进入容器


[root@localhost ~]# podman attach httpd
/ #

exec 进入容器


[root@localhost ~]# podman exec -it httpd /bin/sh
/ #

rm 删除容器

[root@localhost ~]# podman ps -a
CONTAINER ID  IMAGE                             COMMAND     CREATED        STATUS            PORTS       NAMES
d36984b8d048  docker.io/library/busybox:latest  sh          8 minutes ago  Up 2 minutes ago              httpd
[root@localhost ~]# podman rm -f httpd
[root@localhost ~]# podman ps -a
CONTAINER ID  IMAGE       COMMAND     CREATED     STATUS      PORTS       NAMES

logs 查看日志

[root@localhost ~]# podman logs httpd

5:podman镜像常用基础命令

search 检索镜像

[root@localhost ~]# podman search httpd
NAME                                             DESCRIPTION
docker.io/library/httpd                          The Apache HTTP Server Project
docker.io/clearlinux/httpd                       httpd HyperText Transfer Protocol (HTTP) server program with the benefits of Clear Linux OS
docker.io/centos/httpd-24-centos7                Platform for running Apache httpd 2.4 or building httpd-based application

获取镜像


[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 blob 7a0437f04f83 done
Copying config 300e315adb done
Writing manifest to image destination
Storing signatures
300e315adb2f96afe5f0b2780b87f28ae95231fe3bdd1e16b9ba606307728f55
[root@localhost ~]# podman images
quay.io/centos/centos      latest      300e315adb2f  20 months ago  217 MB

images 列出镜像

[root@localhost ~]# podman images
quay.io/centos/centos      latest      300e315adb2f  20 months ago  217 MB

image ls 列出镜像


quay.io/centos/centos      latest      300e315adb2f  20 months ago  217 MB

rmi 删除镜像

[root@localhost ~]# podman images
REPOSITORY                 TAG         IMAGE ID      CREATED        SIZE
docker.io/library/busybox  latest      beae173ccac6  7 months ago   1.46 MB
docker.io/ningnoob/ceshi   g1          beae173ccac6  7 months ago   1.46 MB
localhost/ningnoob/ceshi   c1          beae173ccac6  7 months ago   1.46 MB
quay.io/centos/centos      latest      300e315adb2f  20 months ago  217 MB
[root@localhost ~]#
[root@localhost ~]# podman rmi  localhost/ningnoob/ceshi:c1
Untagged: localhost/ningnoob/ceshi:c1
[root@localhost ~]# podman images
REPOSITORY                 TAG         IMAGE ID      CREATED        SIZE
docker.io/library/busybox  latest      beae173ccac6  7 months ago   1.46 MB
docker.io/ningnoob/ceshi   g1          beae173ccac6  7 months ago   1.46 MB
quay.io/centos/centos      latest      300e315adb2f  20 months ago  217 MB

image rm 删除镜像


[root@localhost ~]# podman images
REPOSITORY                 TAG         IMAGE ID      CREATED        SIZE
docker.io/library/busybox  latest      beae173ccac6  7 months ago   1.46 MB
docker.io/ningnoob/ceshi   g1          beae173ccac6  7 months ago   1.46 MB
quay.io/centos/centos      latest      300e315adb2f  20 months ago  217 MB
[root@localhost ~]# podman image rm docker.io/ningnoob/ceshi:g1
Untagged: docker.io/ningnoob/ceshi:g1
[root@localhost ~]# podman images
REPOSITORY                 TAG         IMAGE ID      CREATED        SIZE
docker.io/library/busybox  latest      beae173ccac6  7 months ago   1.46 MB
quay.io/centos/centos      latest      300e315adb2f  20 months ago  217 MB

tag 标记本地镜像,将其归入某一仓库。


[root@localhost ~]# podman images
REPOSITORY                 TAG         IMAGE ID      CREATED        SIZE
docker.io/library/busybox  latest      beae173ccac6  7 months ago   1.46 MB
quay.io/centos/centos      latest      300e315adb2f  20 months ago  217 MB
[root@localhost ~]#
[root@localhost ~]# podman tag docker.io/library/busybox:latest docker.io/ningnoob/ceshi:s1
[root@localhost ~]# podman images
REPOSITORY                 TAG         IMAGE ID      CREATED        SIZE
docker.io/library/busybox  latest      beae173ccac6  7 months ago   1.46 MB
docker.io/ningnoob/ceshi   s1          beae173ccac6  7 months ago   1.46 MB
quay.io/centos/centos      latest      300e315adb2f  20 months ago  217 MB

login 登录到一个镜像仓库


[root@localhost ~]# podman login
Username: ningnoob
Password:
Login Succeeded!

push 上传镜像


[root@localhost ~]# podman push docker.io/ningnoob/ceshi:s1
Getting image source signatures
Copying blob 01fd6df81c8e skipped: already exists
Copying config beae173cca done
Writing manifest to image destination
Storing signatures

这篇关于podman简介与安装与常用基础命令的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/504348

相关文章

Linux join命令的使用及说明

《Linuxjoin命令的使用及说明》`join`命令用于在Linux中按字段将两个文件进行连接,类似于SQL的JOIN,它需要两个文件按用于匹配的字段排序,并且第一个文件的换行符必须是LF,`jo... 目录一. 基本语法二. 数据准备三. 指定文件的连接key四.-a输出指定文件的所有行五.-o指定输出

Linux jq命令的使用解读

《Linuxjq命令的使用解读》jq是一个强大的命令行工具,用于处理JSON数据,它可以用来查看、过滤、修改、格式化JSON数据,通过使用各种选项和过滤器,可以实现复杂的JSON处理任务... 目录一. 简介二. 选项2.1.2.2-c2.3-r2.4-R三. 字段提取3.1 普通字段3.2 数组字段四.

MyBatis常用XML语法详解

《MyBatis常用XML语法详解》文章介绍了MyBatis常用XML语法,包括结果映射、查询语句、插入语句、更新语句、删除语句、动态SQL标签以及ehcache.xml文件的使用,感兴趣的朋友跟随小... 目录1、定义结果映射2、查询语句3、插入语句4、更新语句5、删除语句6、动态 SQL 标签7、ehc

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

java中ssh2执行多条命令的四种方法

《java中ssh2执行多条命令的四种方法》本文主要介绍了java中ssh2执行多条命令的四种方法,包括分号分隔、管道分隔、EOF块、脚本调用,可确保环境配置生效,提升操作效率,具有一定的参考价值,感... 目录1 使用分号隔开2 使用管道符号隔开3 使用写EOF的方式4 使用脚本的方式大家平时有没有遇到自

Python打包成exe常用的四种方法小结

《Python打包成exe常用的四种方法小结》本文主要介绍了Python打包成exe常用的四种方法,包括PyInstaller、cx_Freeze、Py2exe、Nuitka,文中通过示例代码介绍的非... 目录一.PyInstaller11.安装:2. PyInstaller常用参数下面是pyinstal

Linux命令rm如何删除名字以“-”开头的文件

《Linux命令rm如何删除名字以“-”开头的文件》Linux中,命令的解析机制非常灵活,它会根据命令的开头字符来判断是否需要执行命令选项,对于文件操作命令(如rm、ls等),系统默认会将命令开头的某... 目录先搞懂:为啥“-”开头的文件删不掉?两种超简单的删除方法(小白也能学会)方法1:用“--”分隔命

Python 常用数据类型详解之字符串、列表、字典操作方法

《Python常用数据类型详解之字符串、列表、字典操作方法》在Python中,字符串、列表和字典是最常用的数据类型,它们在数据处理、程序设计和算法实现中扮演着重要角色,接下来通过本文给大家介绍这三种... 目录一、字符串(String)(一)创建字符串(二)字符串操作1. 字符串连接2. 字符串重复3. 字

Spring的基础事务注解@Transactional作用解读

《Spring的基础事务注解@Transactional作用解读》文章介绍了Spring框架中的事务管理,核心注解@Transactional用于声明事务,支持传播机制、隔离级别等配置,结合@Tran... 目录一、事务管理基础1.1 Spring事务的核心注解1.2 注解属性详解1.3 实现原理二、事务事

python依赖管理工具UV的安装和使用教程

《python依赖管理工具UV的安装和使用教程》UV是一个用Rust编写的Python包安装和依赖管理工具,比传统工具(如pip)有着更快、更高效的体验,:本文主要介绍python依赖管理工具UV... 目录前言一、命令安装uv二、手动编译安装2.1在archlinux安装uv的依赖工具2.2从github