Podman与docker兼容性问题

Podman,问题,docker兼容性 · 浏览次数 : 1842

小编点评

**Podman 的优点:** * 支持 rootless 模式,无需为 root 用户权限即可管理容器。 * 避免多余的提示运行命令导致的错误。 **Podman 的缺点:** * 使用 rootless 模式可能会增加安全风险。 * 与 Docker 相互使用时,存在兼容性问题。 **解决方法:** 1. 创建一个名为 `/etc/containers/nodocker` 的文件,并将以下内容写入它: ``` sudo echo >> /etc/containers/nodocker ``` 2. 确保 `/etc/containers/nodocker` 文件具有执行权限: ``` sudo chmod 600 /etc/containers/nodocker ``` 3. 重新启动 Podman 服务: ``` sudo systemctl restart podman ``` **注意:** * `nodocker` 文件的名称可以根据需求更改。 * 此方法仅适用于在 CentOS 8 及以后版本的 Linux 系统中。 * 使用 `nodocker` 可能会影响与 Docker 相互使用的所有命令。 * 建议谨慎使用 `nodocker`,并确保安全措施已实施。

正文

使用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容器无法自动启动

dockerroot绑定,启动的时候能够自动启动标记为-d的容器,但是podman不行,需要进行额外的操作,详细看这篇文章。总之就是麻烦,不如docker这么简单直接。

总结

由于一直使用root进行登录,非常容易被攻击挂马,改用其他用户能够显著改善这个问题,但是需要谨慎处理podman与docker之间的兼容性问题。

与Podman与docker兼容性问题相似的内容:

Podman与docker兼容性问题

使用Podman最好的地方就是支持rootless,也就是说用户不需要为root权限即可进行容器的管理操作。因此现在在CentOS 8及以后的版本中,默认使用Podman替代Docker,如果使用docker命令,会重定向到podman。 rootless很好,但是也带来了一些问题: 多余的提示 运

如何在 Windows 使用 Podman Desktop 取代 Docker Desktop

Podman Desktop 是 Docker Desktop 的免费替代品,是本地开发使用的另一个绝佳选择。它提供了类似的功能集,同时保持完全开源,让您避免使用 Docker 产品的许可问题。在本文中,您将学习如何安装和开始使用 Podman Desktop 来运行容器并部署到 Kubernete

对于Docker和Podman的一点使用经验

本文会以多个实际的线上例子,分享自己对于Docker和Podman的一点使用经验及踩过的坑,希望对读者有一点帮助

debian11 使用podman搭建 nacos-server

前言 基于debian11 + podman 搭建 nacos-server 用于简单测试。 nacos-server基于java,如果直接运行还要准备java环境,在docker/podman 镜像中发现了打包好的nacos-server镜像,集成了java和nacos-server。 正文 1.

[转帖]podman,ctr镜像导入导出

podman 查看镜像 podman images podman 镜像导出 podman save foxwho.com/fox/image:1.0.0 -o image.img foxwho.com/fox/image:1.0.0 : 打包时定义的镜像地址和版本号 image.img : 要保存的