podman容器的使用

Posted 向阳-Y.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了podman容器的使用相关的知识,希望对你有一定的参考价值。

容器基本的操作与了解:

安装容器管理工具

yum -y module install container-tools
podman --version
podman search rhel7

语法:
registry_name/user_name/image_name:tag registry_name是存储镜像的注册表的名称
user_name在用户命名空间必须唯一
tag标识镜像版本

登录注册表:

podman login REGISTRY_NAME

REGISTRY_NAME:
registry.redhat.io:适用于基于官方红帽产品的容器
registry.connect.redhat.com:适用于基于第三方产品的容器
registry.access.redhat.com:旧的注册表
可以用podman infor查看REGISTRY_NAME
注意 :此处使用的是国外镜像,可以选择使用国内镜像(国外镜像可能登录不上去):–>Podman使用国内镜像源 <–

登录podman后,以下命令可以查找相关的资源
podman search rhel7
–no-trunc 表示查看命令全部描述
–filter=stars=600 显示点赞数>=600的
–filter=is-automated=<true|false>显示自动构建的镜像
–filter=is-official=<true|false>仅显示标记为官方的镜像
–limit限制每个注册表列出的镜像数量
提取镜像

podman pull #提取镜像
podman images  #查看提取的镜像
podman rm docker.io/library/registry #删除下载的镜像

例子:

podman pull registry.access.redhat.com/rhel7.0:latest #下载容器
podman images #列出本地容器
podman run -it --name=rhel7 #运行容器 -t==--tty意思是pseudo-tty(伪终端)将被分给容器,-i== --interactive 相同。容器接收输入,-d==--detach,表示容器在后台运行(已分离)--name设置容器名称

查看正在运行的容器:

podman ps ­a查看正在运行+历史运行过的容器
podman ps ­q 查看正在运行的容器id
podman ps ­s 显示运行容器总文件大小
podman ps ­l 显示最近创捷容器
podman ps ­n 3 最近创键的3个容器
podman ps ­­no­trunc 显示所有描述

退出后容器关闭,没有在后台执行
我们也可以快速命令,无需交互,使用完后删除容器
运行容器:

 podman run ­-it --name=rhel7 registry.access.redhat.com/rhel7.0:latest /bin/bash
 cat /etc/os-release #可以查看容器的版本

上面命令中,–name表示给容器命名, -i使容器允许接收输入信息,-t给容器分配一个终端界面,/bin/bash表示允许交互,这儿的run可以替换成exec,表示exit容器在后台运行
退出容器后,可以使用podman ps查看容器是否在后台运行

构建一个容器存放在后台

podman run ­-itd     #d为存放在后台

进入后台容器

 podman attach compassionate_northcutt   # podman attach rhel

缺点:容器终止或者容器退出,容器就会重后台退出
可以用podman ps -a 可以查看历史容器,并使用podman start rhel重启容器

可以使用以下命令不会退出后台容器:

podman exec -it 6479495ccbd5 /bin/bash


exit后不会退出后台容器
注意:使用exec时需要先让容器在后台跑起来,然后才能使用podman exec -it DOCKER_NAME /bin/bash

删除容器

podman rmi CONTAINER_NAME   #-i是指连着镜像仓库的内容一起删除
podman rm -f CONTAINER_NAME #强制删除正在运行的容器,最好是先podman stop CONTAINER_NAME

查找并管理容器镜像:

容器的配置文件,/etc/container/registries.conf


registries.search表示注册表的镜像源配置

registries.insecure表示,不安全的注册表(如果获取地址没有证书,可以将其列为不安全,就可以访问了)

首先

podman login hub-mirror.c.163.com

查找rhel7容器镜像

podman search rhel7

skopeo inspect可以查看容器镜像信息
可以通过skopeo inspect rhel7查看名为rhel7的本地镜像
也可以通过skopeo inspect docker://镜像名称命令无需下载查看目标容器镜像信息
还可以通过podman search --no-trunc rhel7来查看云端镜像信息

查找到合适的镜像后,使用podman pull MIRROR_NAME进行拉取镜像,例如:

podman pull docker.io/ecpe4s/rhel7-runner-x86_64

查看podman网络:

podman network ls

查看网络当前详细信息

podman network inspect podman

podman inspect可以直接查看容器当前配置了哪些信息

podman inspect rhel7 | grep IP 

自定义网络

bridge桥接、none不配置网络、host和主机共享网络、container和容器网络连通

podman network create --driver bridge --subnet 10.1.1.0/24 --gateway 10.1.1.254 mynetwork

创建一个模式为bridge,网段为10.1.1.0/24 网关为10.1.1.254 网络名称为mynetwork的网络配置
可以使用podman network ls查看,也可以使用podman network inspect mynetwork查看

使用自定义网络启动容器镜像

podman run -itd --name rhel7 --network mynetwork docker.io/richxsl/rhel7:latest /bin/bash

其中,-itd,it不解释,d为后台运行rhel7为自定义的容器镜像名字,docker.io/richxsl/rhel7为本地容器镜像,latest表示为最新

可以使用podman inspect rhel7 | grep ip 来查看此容器的ip地址


下一章:高级容器的使用

以上是关于podman容器的使用的主要内容,如果未能解决你的问题,请参考以下文章

为啥使用 podman 构建容器时无法删除目录?

容器化还可以有其他选择 -- podman

podman.命令集锦

podman容器的使用

podman初试-和docker对比

Linux Debian11 Podman容器常用命令