podman初试——和码头工人对比
1,什么是码头工人?
码头工人是一个开源的应用容器引擎,属于Linux容器的一种封装,码头工人提供简单易用的容器使用接口,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上。容器是完全使用沙箱机制,相互之间不会有任何接口。
2,什么是Podman ?
Podman是一个开源的容器运行时项目,可在大多数Linux平台上使用.Podman提供与码头工人非常相似的功能,正如前面提到的那样,它不需要在你的系统上运行任何守护进程,并且它也可以在没有根权限的情况下运行。
Podman可以管理和运行任何符合OCI(打开容器倡议)规范的容器和容器镜像.Podman提供了一个与码头工人兼容的命令行前端来管理码头工人镜像。
<李> Podman官网地址:https://podman.io/李> <李> Podman项目地址:https://github.com/containers/libpod 李>
引用>3, Podman和码头工人不同之处?
<李>码头工人需要在我们的系统上运行一个守护进程(码头工人守护进程),而podman不需要李> <李>启动容器的方式不同:
<代码>码头工人cli 代码>命令通过API跟<代码>码头工人引擎(引擎)代码>交互告诉它我想创建一个容器,然后<代码> 代码>码头工人引擎才会调用<代码> OCI容器运行时(runc) 代码>来启动一个容器。这代表容器的过程(进程)不会是<代码>码头工人cli 代码>的<代码>子进程(子进程)> 代码,而是<代码>码头工人引擎代码>的<代码>子进程> 代码。
<代码> Podman> 代码是直接给<代码> OCI包含运行时(runc) 代码>进行交互来创建容器的,所以<代码>容器过程> 代码直接是<代码> Podman 代码>的<代码>子进程> 代码。李> <李>因为docke有码头工人守护进程,所以码头工人启动的容器支持<代码>——重启代码>策略,但是podman不支持,如果在美丽中就不存在这个问题,我们可以设置pod的重启策略,在系统中我们可以采用编写systemd服务来完成自启动李> <李>码头工人需要使用根用户来创建容器,但是podman不需要李>4, podman的安装
4.1, Arch Linux,Manjaro Linux
<代码类=" language-bash "> sudo pacman - s podman 代码>4.2, Fedora, Centos
<代码类=" language-bash "> sudo使用yum - y安装podman 代码>4.3, Gentoo
<代码类=" language-bash "> sudo出现app-emulation/libpod 代码>4.4, MacOS
<代码类=" language-bash ">酿酒桶安装podman 代码>5, Podman CLI介绍
Podman CLI里面87%的指令都和码头工人CLI相同,官方给出了这么个例子<代码>别名码头工人=Podman> 代码,所以说经常使用码头工人CLI的人使用Podman上手非常快
运行一个容器
<代码类=" language-bash "> podman运行dt - p 80:80——名字nginx - v/数据:/数据- e NGINX_VERSION=1.16 nginx: 1.16.0 代码>列出当前所有的容器
<代码类=" language-bash "> # podman ps - 容器标识图像命令创建状态端口名称 19 f105d5dc1e docker.io/图书馆/nginx: 1.16.0 nginx - g守护进程啊……2分钟前2分钟前0.0.0.0:80→80/tcp nginx 代码>查看一个镜像信息
<代码类=" language-bash "> # podman检查nginx | grep - i“ipaddress” “SecondaryIPAddresses”:空, :“IPAddress 10.88.0.110”, 代码>查看容器运行的日志
<代码类=" language-bash "> podman日志nginx 代码>查看运行中容器资源使用情况
<代码类=" language-bash "> # podman nginx 用户PID PPID % CPU运行时间TTY命令 根1 0 5 m26.420969043s分/0.000 0 0年代nginx:主进程nginx - g守护进程; nginx 6 1 5 m26.421085502s分/0.000 0 0年代nginx:工作进程 # podman统计nginx ID名称CPU % MEM使用/限制MEM %网络IO阻塞IO pid 19 f105d5dc1e nginx——2.036 mb/1.893 gb 978 b/10.55 kb -/- 2 0.11% 代码>迁移容器
Podman支持将容器从一台机器迁移到另一台机器。
首先,在源机器上对容器设置检查点,并将容器打包到指定位置。<代码类=" language-bash "> $ sudo podman容器检查点& lt; container_id>- e/tmp/checkpoint.tar.gz scp/tmp/checkpoint.tar美元。广州& lt; destination_system>:/tmp/podman初试——和码头工人对比