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 notrunc 显示所有描述
退出后容器关闭,没有在后台执行
我们也可以快速命令,无需交互,使用完后删除容器
运行容器:
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容器的使用的主要内容,如果未能解决你的问题,请参考以下文章