使用Podman
最好的地方就是支持rootless
,也就是说用户不需要为root权限即可进行容器的管理操作。因此现在在CentOS 8及以后的版本中,默认使用Podman
替代Docker
,如果使用docker
命令,会重定向到podman。
rootless很好,但是也带来了一些问题:
多余的提示
运行命令的时候,只要输入了docker
,那么就会弹出提示:
docker Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
如果就是单纯的提示,那么问题不大。不过很多第三方的脚本执行的时候,没有考虑到podman的兼容性,出现了多余的提示会认为docker执行命令失败,我们需要去除它。方法也比较简单,按照提示,执行:
sudo echo >> /etc/containers/nodocker
出现一个空文件即可,后面执行文件就不出现提示了。
提示无法映射1024以下的特权端口
非root用户使用docker时,对外使用80端口系统提示非root用户无法使用1024以下的端口,需要添加设置:
#当前设置 sysctl net.ipv4.ip_unprivileged_port_start=80 #永久设置 echo "net.ipv4.ip_unprivileged_port_start=80" >> /etc/sysctl.conf
重启之后Podman
容器无法自动启动
docker
和root
绑定,启动的时候能够自动启动标记为-d的容器,但是podman不行,需要进行额外的操作,详细看这篇文章。总之就是麻烦,不如docker这么简单直接。
总结
由于一直使用root进行登录,非常容易被攻击挂马,改用其他用户能够显著改善这个问题,但是需要谨慎处理podman与docker之间的兼容性问题。
除非特殊说明,本作品由podolski创作,采用知识共享署名 4.0 国际许可协议进行许可。欢迎转载,转载请保留原文链接~喜欢的观众老爷们可以点下关注或者推荐~