使用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
出现一个空文件即可,后面执行文件就不出现提示了。
非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之间的兼容性问题。