podman部署与应用

podman部署与应用


What is Podman?

Podman 是一个无守护程序、开源的 Linux 原生工具,旨在使用开放容器计划 (OCI) 容器和容器映像轻松查找、运行、构建、共享和部署应用程序。Podman 提供了一个命令行界面 (CLI),任何使用过 Docker 容器引擎的人都熟悉。大多数用户可以简单地将Docker别名为Podman(别名docker=podman),而不会出现任何问题。与其他常见的容器引擎(Docker,CRI-O,containerd)类似,Podman依靠符合OCI的容器运行时(runc,crun,runv等)与操作系统接口并创建正在运行的容器。这使得Podman创建的正在运行的容器与任何其他常见容器引擎创建的容器几乎没有区别。

Podman 控制下的容器可以由 root 用户或非特权用户运行。Podman 使用 libpod 库管理整个容器生态系统,其中包括 Pod、容器、容器映像和容器卷。Podman 专门研究所有帮助您维护和修改 OCI 容器映像(如拉取和标记)的命令和函数。它允许您在生产环境中创建、运行和维护这些容器和容器映像。

有一个 RESTFul API 来管理容器。我们还有一个远程Podman客户端,可以与RESTFul服务进行交互。我们目前支持 Linux、Mac 和 Windows 上的客户端。RESTFul 服务仅在 Linux 上受支持。

部署podman

//安装podman
[root@loaclhost ~]# yum -y install podman
[root@loaclhost containers]# yum -y install podman-docker

//修改配置文件
[root@loaclhost ~]# cd /etc/containers/
[root@loaclhost containers]# ls
certs.d  policy.json      registries.conf.d  storage.conf
oci      registries.conf  registries.d
[root@loaclhost containers]# vim registries.conf
unqualified-search-registries = ["docker.io"]  //拉取镜像从docker官网拉取
[[registry]]
prefix = "docker.io"
location = "gxroeyl8.mirror.aliyuncs.com"  //配置加速器

podman基础命令应用

[root@loaclhost containers]# podman pull httpd
Resolving "httpd" using unqualified-search registries (/etc/containers/registries.conf)
Trying to pull docker.io/library/httpd:latest...
Getting image source signatures
Copying blob a2abf6c4d29d done  
Copying blob dcc4698797c8 done  
Copying blob d982c879c57e done  
Copying blob 41c22baa66ec done  
Copying blob 67283bbdd4a0 done  
Copying config dabbfbe0c5 done  
Writing manifest to image destination
Storing signatures
dabbfbe0c57b6e5cd4bc089818d3f664acfad496dc741c9a501e72d15e803b34
[root@loaclhost containers]# podman images
REPOSITORY               TAG         IMAGE ID      CREATED       SIZE
docker.io/library/httpd  latest      dabbfbe0c57b  7 months ago  148 MB

//创建并运行一个容器
[root@loaclhost ~]# podman run -it busybox
Resolved "busybox" as an alias (/etc/containers/registries.conf.d/000-shortnames.conf)
Trying to pull docker.io/library/busybox:latest...
Getting image source signatures
Copying blob 5cc84ad355aa done  
Copying config beae173cca done  
Writing manifest to image destination
Storing signatures
/ # 

//创建容器但不运行
[root@loaclhost ~]# podman create busybox
8161b8a3d2031c87d19e7447ef0ed4dff5fda9f25c81f3a53db88b214d2f6267
[root@loaclhost ~]# podman ps -a
CONTAINER ID  IMAGE                             COMMAND     CREATED             STATUS                     PORTS       NAMES
8161b8a3d203  docker.io/library/busybox:latest  sh          20 seconds ago      Created                                busy_bhabha

//在容器和本地之间复制文件或文件夹
[root@loaclhost ~]# podman run -it --name web busybox /bin/sh
/ # ls
bin   dev   etc   home  proc  root  run   sys   tmp   usr   var
/ # exit
[root@loaclhost ~]# podman cp anaconda-ks.cfg web:/
[root@loaclhost ~]# podman exec -it web /bin/sh
/ # ls
anaconda-ks.cfg  etc              root             tmp
bin              home             run              usr
dev              proc             sys              var

//显示指定的历史记录
[root@loaclhost ~]# podman history busybox
ID            CREATED       CREATED BY                                     SIZE        COMMENT
beae173ccac6  7 months ago  /bin/sh -c #(nop)  CMD ["sh"]                  0 B         
<missing>     7 months ago  /bin/sh -c #(nop) ADD file:6db446a57cbd2b7...  1.46 MB   

//列出镜像
[root@loaclhost ~]# podman images
REPOSITORY                 TAG         IMAGE ID      CREATED       SIZE
docker.io/library/busybox  latest      beae173ccac6  7 months ago  1.46 MB
docker.io/library/httpd    latest      dabbfbe0c57b  7 months ago  148 MB

//显示容器或映像的配置
[root@loaclhost ~]# podman inspect busybox

//登录到容器注册表
[root@loaclhost ~]# podman login 
Username: zjunwhite     
Password: 
Login Succeeded!

//退出容器注册表
[root@loaclhost ~]# podman logout 
Removed login credentials for docker.io

//获取容器的日志
[root@loaclhost ~]# podman logs web
/ # ls
bin   dev   etc   home  proc  root  run   sys   tmp   usr   var
/ # exit

//列出网络
[root@loaclhost ~]# podman network ls
NETWORK ID    NAME        VERSION     PLUGINS
2f259bab93aa  podman      0.4.0       bridge,portmap,firewall,tuning

//暂停容器中的进程
[root@loaclhost ~]# podman ps -a
87921717ed14  docker.io/library/busybox:latest  /bin/sh     13 minutes ago  Up 6 minutes ago                       web
[root@loaclhost ~]# podman stop web
web
[root@loaclhost ~]# podman ps -a
CONTAINER ID  IMAGE                             COMMAND     CREATED         STATUS                      PORTS       NAMES
87921717ed14  docker.io/library/busybox:latest  /bin/sh     14 minutes ago  Exited (137) 8 seconds ago              web

//启动容器
[root@loaclhost ~]# podman ps -a
CONTAINER ID  IMAGE                             COMMAND     CREATED         STATUS                      PORTS       NAMES
[root@loaclhost ~]# podman start web
web
[root@loaclhost ~]# podman ps -a
CONTAINER ID  IMAGE                             COMMAND     CREATED         STATUS                     PORTS       NAMES
87921717ed14  docker.io/library/busybox:latest  /bin/sh     16 minutes ago  Up 6 seconds ago                       web
S       NAMES
87921717ed14  docker.io/library/busybox:latest  /bin/sh     16 minutes ago  Up 6 seconds ago                       web

//修改容器名字
[root@loaclhost ~]# podman container rename web web1
[root@loaclhost ~]# podman ps -a
87921717ed14  docker.io/library/busybox:latest  /bin/sh     10 hours ago  Created                              web1

//删除容器
[root@loaclhost ~]# podman rm web1 
87921717ed14c4c23cc1862bfde3eb942e434427cf54ef85095907f29bb8feae
[root@loaclhost ~]# podman ps -a
CONTAINER ID  IMAGE                             COMMAND     CREATED       STATUS                   PORTS       NAMES

//删除镜像
[root@loaclhost ~]# podman rmi busybox
Untagged: docker.io/library/busybox:latest
Deleted: beae173ccac6ad749f76713cf4440fe3d21d1043fe616dfbe30775815d1d0f6a

//查找容器中的镜像
[root@loaclhost ~]# podman search httpd
INDEX       NAME                                          DESCRIPTION                                      STARS       OFFICIAL    AUTOMATED
docker.io   docker.io/library/httpd                       The Apache HTTP Server Project                   4116        [OK]        
docker.io   docker.io/clearlinux/httpd                    httpd HyperText Transfer Protocol (HTTP) ser...  2                       
docker.io   docker.io/centos/httpd-24-centos7             Platform for running Apache httpd 2.4 or bui...  44                      
docker.io   docker.io/manageiq/httpd                      Container with httpd, built on CentOS for Ma...  1                       [OK]

//查看容器的资源使用率
[root@loaclhost ~]# podman stats web
ID            NAME        CPU %       MEM USAGE / LIMIT  MEM %       NET IO          BLOCK IO    PIDS        CPU TIME     AVG CPU %
c0362a971144  web         --          237.6kB / 1.877GB  0.01%       768B / 1.304kB  -- / --     1           28.782487ms  6.19%

//修改镜像版本号
[root@loaclhost ~]# podman images
REPOSITORY                 TAG         IMAGE ID      CREATED       SIZE
docker.io/library/busybox  latest      beae173ccac6  7 months ago  1.46 MB
docker.io/library/httpd    latest      dabbfbe0c57b  7 months ago  148 MB
[root@loaclhost ~]# podman tag beae173ccac6 docker.io/library/busybox:v0.1
[root@loaclhost ~]# podman images
REPOSITORY                 TAG         IMAGE ID      CREATED       SIZE
docker.io/library/busybox  v0.1        beae173ccac6  7 months ago  1.46 MB
docker.io/library/httpd    latest      dabbfbe0c57b  7 months ago  148 MB

//显示容器的运行进程
[root@loaclhost ~]# podman top web 
USER        PID         PPID        %CPU        ELAPSED           TTY         TIME        COMMAND
root        1           0           0.000       17m45.380848872s  pts/0       0s          /bin/sh 

//显示容器磁盘使用状态
[root@loaclhost ~]# podman system df
TYPE           TOTAL       ACTIVE      SIZE        RECLAIMABLE
Images         2           1           149.1MB     147.7MB (0%)
Containers     1           1           17B         0B (0%)
Local Volumes  0           0           0B          0B (0%)

//卸载工作容器的根文件系统
[root@loaclhost ~]# podman unmount web 
web
[root@loaclhost ~]# podman exec -it web /bin/sh
Error: exec failed: container_linux.go:380: starting container process caused: process_linux.go:99: starting setns process caused: fork/exec /proc/self/exe: no such file or directory: OCI runtime attempted to invoke a command that was not found

//再挂载上去
[root@loaclhost ~]# podman mount web
/var/lib/containers/storage/overlay/156e5b274d19ba81593dd7aa4dbaeb1430f6f5a58414c1582ccd08f8ceb2dec6/merged
//在运行的容器中运行进程
[root@loaclhost ~]# podman exec -it web /bin/sh
/ # exit

//显示Podman版本信息
[root@loaclhost ~]# podman version 
Version:      3.3.1
API Version:  3.3.1
Go Version:   go1.16.7
Built:        Wed Nov 10 05:23:56 2021
OS/Arch:      linux/amd64

//查看是否有卷存在
[root@loaclhost ~]# podman volume exists 
Error: accepts 1 arg(s), received 0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随便投投

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值