podman vs docker

podman vs docker

阅读量:
评论数:

podman vs docker

最近发现了podman,一些介绍podman的文章标题起的比较震惊,大致就是docker大势已去、podman是下一代容器工具云云,我呢平时也是比较喜欢使用docker的,看到如此贬低docker我怎么能忍受,马上安装个podman跑一下看看。

本次对比使用pve创建配置相同的lxc分别安装docker和podman,并安装mysql对比下占用情况,

共3个lxc,均512m内存、8gb硬盘,无swap,系统为debian 12,因为是lxc,所以安装docker和podman的容器均需开启嵌套,podman容器需要额外勾选fuse,另一个lxc使用apt安装mysql作为对照。

podman与docker对比的视频介绍:Podman vs. Docker - YouTube

docker与podman的安装

均按照官方文档进行安装

docker安装:Install Docker Engine on Debian | Docker Docs

podman安装:Podman Installation | Podman

podman compose、docker compose均未安装

101(Docker)是我的主力鸡,不参与本次对比😋

可以看到podman比docker更加轻量,使用top命令看看差在什么地方

lxcDocker容器

top - 15:26:43 up 4 min,  1 user,  load average: 0.31, 1.18, 2.88
Tasks:  18 total,   1 running,  17 sleeping,   0 stopped,   0 zombie
%Cpu(s):  5.7 us,  3.8 sy,  0.0 ni, 89.9 id,  0.1 wa,  0.0 hi,  0.2 si,  0.0 st 
MiB Mem :    512.0 total,    252.8 free,     59.0 used,    200.2 buff/cache     
MiB Swap:      0.0 total,      0.0 free,      0.0 used.    453.0 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                  
      1 root      20   0   20088  11264   8704 S   0.0   2.1   0:00.29 systemd                                                  
     46 root      20   0   32892  11008  10112 S   0.0   2.1   0:00.07 systemd-journal                                          
     84 root      20   0    5868   3328   2688 S   0.0   0.6   0:00.00 dhclient                                                 
     89 systemd+  20   0   17860   8448   7424 S   0.0   1.6   0:00.05 systemd-network                                          
     93 root      20   0    3600   2048   1920 S   0.0   0.4   0:00.00 cron                                                     
     94 message+  20   0    9120   4608   4224 S   0.0   0.9   0:00.02 dbus-daemon                                              
     99 root      20   0   16536   7424   6528 S   0.0   1.4   0:00.05 systemd-logind                                           
    147 root      20   0 1356192  42224  30464 S   0.0   8.1   0:00.15 containerd                                               
    149 root      20   0    2516   1408   1408 S   0.0   0.3   0:00.00 agetty                                                   
    150 root      20   0    6120   3712   3328 S   0.0   0.7   0:00.01 login                                                    
    151 root      20   0    2516   1664   1664 S   0.0   0.3   0:00.00 agetty                                                   
    158 root      20   0   15408   9344   8064 S   0.0   1.8   0:00.01 sshd                                                     
    293 root      20   0   42652   4628   4096 S   0.0   0.9   0:00.00 master                                                   
    294 postfix   20   0   43040   6656   6144 S   0.0   1.3   0:00.00 pickup                                                   
    295 postfix   20   0   43088   6784   6272 S   0.0   1.3   0:00.00 qmgr                                                     
    302 root      20   0 1536100  76284  51584 S   0.0  14.6   0:00.32 dockerd                                                  
    439 root      20   0    5224   4352   2816 S   0.0   0.8   0:00.01 bash  

lxcPodman容器

top - 15:26:44 up 4 min,  1 user,  load average: 0.29, 1.16, 2.87
Tasks:  16 total,   1 running,  15 sleeping,   0 stopped,   0 zombie
%Cpu(s):  6.6 us,  4.9 sy,  0.0 ni, 87.7 id,  0.1 wa,  0.0 hi,  0.3 si,  0.0 st 
MiB Mem :    512.0 total,    407.9 free,     21.2 used,     83.0 buff/cache     
MiB Swap:      0.0 total,      0.0 free,      0.0 used.    490.8 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                  
      1 root      20   0   20060  11136   8576 S   0.0   2.1   0:00.32 systemd                                                  
     48 root      20   0   32952  10624   9728 S   0.0   2.0   0:00.06 systemd-journal                                          
     81 root      20   0    5868   3584   2816 S   0.0   0.7   0:00.00 dhclient                                                 
     86 systemd+  20   0   17860   8448   7424 S   0.0   1.6   0:00.05 systemd-network                                          
     93 root      20   0    3600   2048   1920 S   0.0   0.4   0:00.00 cron                                                     
     94 message+  20   0    9120   4480   4096 S   0.0   0.9   0:00.02 dbus-daemon                                              
     97 root      20   0   16536   7424   6528 S   0.0   1.4   0:00.06 systemd-logind                                           
    168 root      20   0    2516   1408   1408 S   0.0   0.3   0:00.00 agetty                                                   
    170 root      20   0    6120   3712   3328 S   0.0   0.7   0:00.02 login                                                    
    171 root      20   0    2516   1408   1408 S   0.0   0.3   0:00.00 agetty                                                   
    174 root      20   0   15408   9344   8064 S   0.0   1.8   0:00.02 sshd                                                     
    326 root      20   0   42652   4628   4096 S   0.0   0.9   0:00.00 master                                                   
    327 postfix   20   0   43040   6784   6144 S   0.0   1.3   0:00.00 pickup                                                   
    328 postfix   20   0   43088   6912   6400 S   0.0   1.3   0:00.00 qmgr                                                     
    335 root      20   0    4980   4096   2816 S   0.0   0.8   0:00.01 bash                                                     
    338 root      20   0    8564   4608   2688 R   0.0   0.9   0:00.11 top  

可以看到podman不需要containerd,也没有常驻在后台的守护进程,相比docker节省了40m左右的内存和400m+的硬盘,这对于低配鸡或许有点意义。

MySQL安装

docker安装MySQL:docker run --name mysql -e MYSQL_ROOT_PASSWORD=password -d mysql

podman安装MySQL:podman run --name mysql -e MYSQL_ROOT_PASSWORD=password -d docker.io/mysql

命令基本一样,拉取的也是docker hub的镜像。

这次使用一个新lxc通过apt安装MySQL,过程大致如下

apt update
apt install -y lsb-release gnupg
wget https://dev.mysql.com/get/mysql-apt-config_0.8.28-1_all.deb
dpkg -i mysql-apt-config_0.8.28-1_all.deb
apt update
apt install mysql-server

相比上面两种使用容器安装的方法要慢上很多,应该比编译安装快吧👀

  1. lxcDocker容器安装了docker、MySQL

  2. lxcPodman容器安装了podman、MySQL

  3. lxcDebian容器安装了MySQL

硬盘及内存占用依次递减,cpu占用几乎一样,以MySQL为例软件安装速度为1=2>3

总结

podman在日常使用上与docker几乎一致,没有什么动力将主力机的docker换成podman,但是以后新购vps会考虑使用podman。

于我这种普通玩家来看,docker与podman这种容器技术在部署软件时更加方便快捷,迁移也是比较简单,docker的文档、指南、教程更加丰富,podman可以以非root用户运行更加安全(无感),没有daemon更加轻量。

Built with Halo
主题 Stack Jimmy 设计 • 由Jiewen移植
📑共水了 93篇文章.
载入天数... 载入时分秒...
RSS Icon RSS订阅