podman


登录红帽 

# podman login registry.redhat.io
Username: comecc
Password:  password
删除有多个tag的镜像
# podman -rmi -f ID
安装podman
# dnf install podman
查看当前使用的podman版本
# podman version
从默认的官方仓库搜索镜像,例如以ubi为关键字进行搜索
# podman search ubi
下载镜像
# podman pull registry.access.redhat.com/ubi8/ubi
查看本地podman镜像
# podman images
查看镜像详细信息
# podman inspect registry.access.redhat.com/ubi8/ubi
运行容器镜像
# podman run -it registry.access.redhat.com/ubi8/ubi /bin/bash
退出容器
exit
通过镜像ID删除镜像
# podman rmi 9c1f1dfba3ae
通过镜像名称删除镜像
# podman rmi registry.access.redhat.com/ubi8/ubi
查看正在运行的容器
# podman ps -a
使用attach命令连接容器
# podman attach 33f696c8538e
使用stop命令终止容器
# podman stop 976ba0d4a6ff
通过容器ID删除容器
# podman rm 163243a502db
查看运行环境信息
# podman system df
删除不用的容器、镜像和本地存储卷
# podman system prune --all --volumes
运行命令查看用作容器基础的操作系统类型,容器运行命令后,容器将退出并被删除
# podman run --rm registry.access.redhat.com/ubi8/ubi cat /etc/os-release
-------------------------------------------------------------- 运行命令后进入shell界面 # podman run --name=mybash -it registry.access.redhat.com/ubi8/ubi /bin/bash
执行命令退出容器 使用名字再次运行容器 # podman start -ai mybash --------------------------------------------------------------
绑定安装日志文件 将主机/dev/log设备绑定安装在容器内 # podman run --name=log_test -v /dev/log:/dev/log --rm  registry.access.redhat.com/ubi8/ubi logger Testing logging to the host
查看到步骤1的日志 # journalctl -b | grep Testing
—————————————————————————————————————————————————————————————— 使用静态 IP 将服务作为守护进程运行
-------------------------------------------------------------- 挂载容器文件系统
# yum -y install rsyslog* 运行名为 mysyslog 的容器 # podman run -d --name=mysyslog registry.redhat.io/rhel8/rsyslog 挂载 mysyslog 容器 # podman mount mysyslog /var/lib/containers/storage/overlay/d76b22f6383aaaeed86522ce2a3fd62004c3e050f9587dab92b0ad871b588b9b/merged 使用 ls 命令显示挂载点的内容 # ls /var/lib/containers/storage/overlay/d76b22f6383aaaeed86522ce2a3fd62004c3e050f9587dab92b0ad871b588b9b/merged bin  boot  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var 显示 OS 版本 # cat /var/lib/containers/storage/overlay/d76b22f6383aaaeed86522ce2a3fd62004c3e050f9587dab92b0ad871b588b9b/merged/e                                tc/os-release
--------------------------------------------------------------
将容器网络接口设置为 IP 地址 10.88.0.44 # podman run -d --ip=10.88.0.44 registry.redhat.io/rhel8/rsyslog 检查 IP 地址是否已正确设置 # podman inspect efde5f0a8c723 | grep 10.88.0
——————————————————————————————————————————————————————————————
在两个容器间共享文件
创建数据卷 # podman volume create hostvolume
查看数据卷详细信息 # podman volume inspect hostvolume
设置一个变量表示卷的存储路径 # mntPoint=$(podman volume inspect hostvolume --format {{.Mountpoint}})
在mntPoint中创建一个文本文件 # echo "Hello from host" >> $mntPoint/host.txt # ls $mntPoint/ host.txt
运行名为 myubi1 的容器,并将主机上的 hostvolume 卷名称定义的目录映射到容器的 /containervolume1 目录中 # podman run -it --name myubi1 -v hostvolume:/containervolume1 registry.access.redhat.com/ubi8/ubi /bin/bash
列出容器上共享卷中的文件 # ls /containervolume1 host.txt
在 /containervolume1 目录中创建一个文本文件 # echo "Hello from container 1" >> /containervolume1/container1.txt
CTRL p q
列出主机上共享卷中的文件,看到两个文件 # ls $mntPoint container1.txt  host.txt
--------------------------------------------------------------
运行名为 myubi2 的容器,并将主机上的 hostvolume 卷名称定义的目录映射到容器的 /containervolume2 目录中 # podman run -it --name myubi2 -v hostvolume:/containervolume2 registry.access.redhat.com/ubi8/ubi  /bin/bash
列出容器上共享卷中的文件 [root@4911bd40f912 /]# ls /containervolume2 container1.txt  host.txt
在 /containervolume2 目录中创建一个文本文件 # echo "Hello from container 2" >> /containervolume2/container2.txt
CTRL p q
列出主机上共享卷中的文件,看到三个文件 # ls $mntPoint container1.txt  container2.txt  host.txt
——————————————————————————————————————————————————————————————
pod
上传k8s-gcr-io-pause.tar # podman load -i k8s-gcr-io-pause.tar --------------------------------------------------------------
创建空pod # podman pod create --name mypod
列出所有 pod # podman pod ps
列出与其关联的所有 pod 和容器 # podman ps -a --pod fa9c007dd807  k8s.gcr.io/pause:3.1                                   58 seconds ago  Created                   c85dac787eed-infra  c85dac787eed
在名为 mypod 的现有 pod 中运行名为 myubi 的容器 # podman run -dt --name myubi --pod mypod k8s.gcr.io/pause:3.1  /bin/bash 12ff5a003ea2360b7d2ae52d0ed198f87cab07c098355b3b2a2f1d6c2a69f073
列出所有 pod,看到 pod 有两个容器 # podman pod ps POD ID         NAME    STATUS    CREATED         # OF CONTAINERS   INFRA ID c85dac787eed   mypod   Running   2 minutes ago   2                 fa9c007dd807
--------------------------------------------------------------
显示 pod 信息
显示 pod 中容器的运行进程 # podman pod top mypod
显示一个或多个 pod 中容器的资源用量统计流 # podman pod stats -a --no-stream
显示描述 pod 的信息 # podman pod inspect mypod

--------------------------------------------------------------
停止 pod # podman pod stop mypod
查看pod进程 # podman ps --------------------------------------------------------------
删除 pod
删除容器 # podman rm myubi
删除pod # podman pod rm mypod
检查是否删除了所有容器和 pod # podman ps # podman pod ps
—————————————————————————————————————————————————————————————— 在容器中运行 Skopeo
安装skopeo # yum install skopeo
登录到 registry.redhat.io registry 获取 registry.redhat.io/rhel8/skopeo 容器镜像 # podman pull registry.redhat.io/rhel8/skopeo
使用 Skopeo 检查远程容器镜像 registry.access.redhat.com/ubi8/ubi # skopeo inspect docker://docker.io/library/mariadb