Podman的部署和应用

Podman的部署和应用

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 容器映像(如拉取和标记)的命令和函数。它允许您在生产环境中创建、运行和维护这些容器和容器映像。

Podman的部署

[root@192 ~]# yum -y install podman-docker
[root@master ~]# vim /etc/containers/registries.conf
[[registry]]
prefix = "docker.io"
location = "docker.mirrors.ustc.edu.cn"

Podma的应用

命令注释
attach将本地标准输入、输出和错误流附加到运行的容器
build从Dockerfile构建映像
commit根据容器的更改创建一个新映像
cp在容器和本地文件系统之间复制文件/文件夹
create创建一个新容器
diff检查容器文件系统中对文件或目录的更改
events从服务器获取实时事件
exec在运行容器中运行命令
export将容器的文件系统导出为tar存档文件
history显示映像的历史
images映像列表
import从tarball中导入内容以创建文件系统映像
info显示整个系统的信息
inspect返回Docker对象的低级信息
kill杀死一个或多个运行中的容器
load从tar存档或STDIN加载一个映像
login登录Docker注册表
logout从Docker注册表注销
logs获取容器的日志
pause暂停一个或多个容器中的所有进程
port列出端口映射或容器的特定映射
ps列表容器
pull从注册表中拉出映像或存储库
push
rename重命名一个容器
restart重新启动一个或多个容器
rm移除一个或多个容器
rmi删除一个或多个映像
run在新容器中运行命令
save将一个或多个映像保存到tar归档文件中(默认流到STDOUT)
search在Docker Hub中搜索映像
start启动一个或多个停止的容器
stats显示容器资源使用统计信息的实时流
stop停止一个或多个运行中的容器
tag创建一个引用SOURCE_IMAGE的标记TARGET_IMAGE
top显示容器的运行进程
unpause取消暂停一个或多个容器中的所有进程
update更新一个或多个容器的配置
version显示Docker版本信息
wait阻塞,直到一个或多个容器停止,然后打印它们的退出代码
//拉取镜像
[root@localhost ~]# podman pull busybox
[root@localhost ~]# podman images
REPOSITORY                 TAG         IMAGE ID      CREATED      SIZE
docker.io/library/busybox  latest     3a6u523521rc  2 weeks ago  1.47 MB

//运行容器
[root@localhost ~]# podman run -d --name httpd docker.io/library/httpd

//列出运行的容器
[root@localhost ~]# podman ps
CONTAINER ID  IMAGE                           COMMAND           CREATED        STATUS            PORTS       NAMES
79226945946c  docker.io/library/httpd:latest  httpd-foreground  3 minutes ago  Up 3 minutes ago              httpd

//查看运行中容器的日志
[root@localhost ~]# podman logs httpd

//查看运行容器中的进程资源使用情况,可以使用top观察容器中的 nginx pid
[root@localhost ~]# podman top httpd
USER        PID         PPID        %CPU        ELAPSED          TTY         TIME        COMMAND
root        1           0           0.000       4m40.540775446s  ?           0s          httpd -DFOREGROUND 
www-data    7           1           0.000       4m40.540998289s  ?           0s          httpd -DFOREGROUND 
www-data    8           1           0.000       4m40.541251262s  ?           0s          httpd -DFOREGROUND 
www-data    9           1           0.000       4m40.54134508s   ?           0s          httpd -DFOREGROUND 

//停止运行中的容器
[root@localhost ~]# podman ps
CONTAINER ID  IMAGE                           COMMAND           CREATED        STATUS            PORTS       NAMES
79226945946c  docker.io/library/httpd:latest  httpd-foreground  5 minutes ago  Up 5 minutes ago              httpd
[root@localhost ~]# podman stop httpd
httpd
[root@localhost ~]# podman ps
CONTAINER ID  IMAGE       COMMAND     CREATED     STATUS      PORTS       NAMES

//删除容器
[root@localhost ~]# podman ps -a
CONTAINER ID  IMAGE                           COMMAND           CREATED        STATUS                     PORTS       NAMES
79226945946c  docker.io/library/httpd:latest  httpd-foreground  5 minutes ago  Exited (0) 42 seconds ago              httpd
[root@localhost ~]# podman rm httpd
99366946946ca23dda7b90dc2d25bc3d164770875e32c76834955a82c0f08490
[root@localhost ~]# podman ps -a
CONTAINER ID  IMAGE       COMMAND     CREATED     STATUS      PORTS       NAMES

//容器与主机之间的数据拷贝
[root@localhost ~]# mkdir cl
[root@localhost ~]# podman  cp cl/ 77dd9dae5r44:/
[root@localhost ~]# podman attach cl
/ # ls
bin   dev   etc   home  proc  root  run   sys   tmp   usr   var   cl
[root@localhost ~]# rm -rf cl/
[root@localhost ~]# podman cp  77dd9dae5r44:/cl /
[root@localhost ~]# ls /
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var  cl

//进入正在运行的容器
[root@localhost ~]# podman ps
CONTAINER ID  IMAGE                             COMMAND     CREATED      STATUS          PORTS       NAMES
77dd9dae5r44  docker.io/library/busybox:latest  sh          2 hours ago  Up 2 hours ago              cl
[root@localhost ~]# podman attach cl
/ #

//检查容器文件系统中对文件或目录的更改
[root@localhost ~]# podman diff f2a976f932ec
C /usr
C /usr/local
C /usr/local/bin
A /usr/local/bin/httpd-foreground

//在正在运行的容器中运行进程
[root@localhost ~]# podman exec -it f2a976f932ec /bin/sh
/ # ls
anaconda-ks.cfg  etc              root             tmp
bin              home             run              usr
dev              proc             sys              var
/ # exit

//显示指定镜像的历史记录
[root@localhost ~]# podman history httpd
ID            CREATED       CREATED BY                                     SIZE              COMMENT
r203f342c57b  7 months ago  /bin/sh -c #(nop)  CMD ["httpd-foreground"]    0 B               
<missing>     7 months ago  /bin/sh -c #(nop)  EXPOSE 80                   0 B               
<missing>     7 months ago  /bin/sh -c #(nop) COPY file:c432ff61c4993e...  3.58 kB           
<missing>     7 months ago  /bin/sh -c #(nop)  STOPSIGNAL SIGWINCH         0 B         

//列出本地存储中的镜像
[root@mr ~]# podman images
REPOSITORY                 TAG         IMAGE ID      CREATED        SIZE
docker.io/library/busybox  latest      3a6u523521rc  2 weeks ago    1.47 MB
docker.io/library/httpd    latest      79226945946c  7 months ago   148 MB
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值