Podman这款新型容器引擎和容器管理工具,究竟有何独特之处?

摘要:1 概述: Podman 当我们谈论容器时,我们首先想到的默认工具就是Docker。但自从 Docker 诞生以来,容器领域已经有了很多发展,特别是在容器安全方面。Podman 是解决安全问题的项目之一。 Podman(POD Manage
1 概述: Podman 当我们谈论容器时,我们首先想到的默认工具就是Docker。但自从 Docker 诞生以来,容器领域已经有了很多发展,特别是在容器安全方面。Podman 是解决安全问题的项目之一。 Podman(POD Manager)是一个开源的无守护进程(daemonless)容器引擎,用于管理容器、容器镜像、容器卷和网络。 它兼容 OCI 标准,可以运行 Docker 镜像,并且设计上与 Docker CLI 命令高度兼容。 什么是PodMan?比 Docker 更安全的竞品 Podman(POD Manager)是一款符合OCI标准的容器管理工具,提供与 Docker 类似的容器管理功能。 podman 的最佳功能之一是它能够运行无根容器。 无根容器是在没有根权限(普通用户)的情况下运行和管理容器的概念。 从安全角度来看,无根容器即使在容器受到攻击者破坏的情况下也不允许根访问,从而增加了额外的安全层。 您可以在此处了解【无根容器】的优点。 注意: Docker 也支持无根模式,但有一些限制。您可以在这里阅读相关内容。 Podman 也是无守护进程的(与 docker 不同)。 这意味着它没有守护进程并直接与 runc 交互(运行基于 OCI 规范的容器)。 在文章的最后,我补充了Docker 和 Podman 之间的区别。 另外,假设 Linux 中有两个用户。用户 a和用户 b。用户 a使用 podman创建的容器不能被用户 b修改,反之亦然。 2 安装使用 2.1 安装 Podman 前往官方 Podman 安装文档。 在这里您可以找到 Windows、MAC 和 Linux 版本的所有安装命令。 注意:对于 Windows 和 Mac,podman 需要虚拟机来部署容器。 2.1.1 安装 on Linux Ubuntu 20.10 为例 对于Debian 11 和 ubuntu 20.10 或更高版本,您可以使用以下步骤。 sudo apt-get install runc -y sudo apt-get -y install podman 对于 CentOS 7: sudo yum -y install podman 对于 MAC,安装 Podaman; 然后, 使用 podman machine 命令初始化基于QEMU的虚拟机。 brew install podman podman machine init podman machine start 安装后,使用以下命令验证安装。 podman version 2.2 Podman 容器注册表配置 默认情况下,Podman 配置有两个容器注册表。 https://quay.io/ https://hub.docker.com/ 您可以在以下文件中找到默认的 Podman 容器注册表配置。 /etc/containers/registries.conf 您可以将自定义或私有容器注册表添加到此配置。 例如,Google容器注册表、AWS ECR、自托管私有注册表等。 如果您想使用registry中的其他私有容器镜像,可以使用命令登录registry podman。 例如,要登录 docker hub: podman login docker.io 登录后,您将能够使用podman命令从 docker hub 中提取容器镜像 如果您希望为【特定用户】拥有不同的【注册表配置】,您可以registries.conf在用户目录中创建单独的容器注册表信息。 $HOME/.config/containers/registries.conf 2.3 Podman 容器存储 每个系统用户都有自己的容器存储。 这意味着,如果您尝试从不同的用户登录中提取映像,它将从【远程注册表】而不是【本地映像】中提取【映像】。 例如, 对于root 用户,容器存储在 /var/lib/containers/storage 目录中 对于其他用户,容器存储在 $HOME/.local/share/containers/storage/ 目录中 2.4 使用 Podman 管理容器 您可以像使用 docker 一样管理容器。但是,我们将使用 podman 作为带有类似于 docker 标志的命令,而不是 docker 命令。 此外,您可以使用任何没有 sudo 权限的用户运行 podman 命令。 拉取镜像 首先,让我们尝试拉取镜像。
阅读全文