Podman 图像不显示 podman 图像 ls

Podman images not showing with podman image ls

我正在尝试在 Red Hat Enterprise Linux 8 (CentoOS 8) 虚拟机中设置构建服务器。

我通过 运行ning sudo dnf install -y @container-tools

安装了 podman

然后我 运行 sudo podman pull mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim 从 docker:

拉取一个容器镜像

Trying to pull mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim...Getting image source signatures
Copying blob e936bd534ffb done
Copying blob caf64655bcbb done
Copying blob 4156e490f05f done
Copying blob 68ced04f60ab done
Copying blob 7064c3d93b4a done
Copying config e2cd20adb1 done
Writing manifest to image destination
Storing signatures
e2cd20adb1292ef24ca70de7abaddaadd57a5c932d3852b972e43b6f05a03dea

我觉得这很成功。如果我再次 运行 它,我会被告知图层 "already exists"。但后来我 运行:

podman image ls

我得到一个空列表:

REPOSITORY TAG IMAGE ID CREATED SIZE

我还尝试了以下命令来获取列表:

他们都给出了一个空列表。

如何查看拉取下来的容器镜像?

更新:我 运行 sudo podman run --rm --name=linuxconfig-test -p 80:80 httpd 和(在另一台机器上)浏览到我的 linux 机器的 IP 地址并显示 It Works!。所以 podman 至少在部分工作。

原来你必须 运行 使用 sudo。我 运行 :

sudo podman image ls

它返回了容器镜像列表。

与Docker不同,Podman 将图像存储在用户的主目录中。默认路径为~/.local/share/containers/storage,可通过运行宁podman info验证。由于您以 root 身份执行 podman pull,因此拉取的图像将存储在 root 用户的主目录中。这就是为什么当您 运行 podman image ls 没有 sudo.

时没有图像被列出的原因

podman 背后的主要思想是它可以 运行 完全处于用户模式,而无需连接到特权守护进程。理想情况下,所有 podman 命令都应该是 运行 而没有 sudo.

您可以使用 --root 选项来提供图像存储位置的路径。也就是说,如果您需要 运行 作为 root。

虽然使用 podman 的一个重要部分是您不需要 运行 作为 root 或 sudo 用户。

注意 - 在您 运行 的那一刻,podman 将更改覆盖位置中某些文件夹和文件的所有者,稍后当您 运行 没有 sudo 时,您需要到 chown 回来。所以不推荐

sudo podman images --root  /home/xxx/.local/share/containers/storage