podman 把我的容器放在哪里了?

podman 把我的容器放在哪里了?

我刚刚安装了 AlmaLinux 9(Red Hat 9 克隆版),并使用 podman 设置了容器,这是 RH9 的新标准。按照网上的一些说明,我成功下载并运行了一个容器,如下所示:

docker run -d \
  --name homeassistant \
  --privileged \
  --restart=unless-stopped \
  -e TZ=MY_TIME_ZONE \
  -v /PATH_TO_YOUR_CONFIG:/config \
  --network=host \
  ghcr.io/home-assistant/home-assistant:stable

我可以确认它正在运行,所以现在我想设置一个 systemd 服务文件以在启动时启动“homeassistant”容器。我尝试找到容器映像文件,但找不到!我检查了 /etc/containers/storage.conf 中列出的位置,它列出了

runroot = "/run/containers/storage"
graphroot = "/var/lib/containers/storage"

但这些都不包含我正在运行的容器(事实上 /var/lib/containers 甚至不包含存储子目录)。那么我的docker命令下载的容器在哪里呢?


更新:我以临时用户身份发出上面的命令,并希望将容器从临时用户(hass)移动到根用户。我以为我会移动该文件。 (但我也很乐意删除并重新下载。)作为新手,我想知道这个容器文件/图像/目录位于哪里。

我的目标是创建一个 systemd 文件,如图所示这里我认为以 root 身份运行它会让生活更轻松(至少在我学习的时候)。所以我需要将容器映像移至不同的用户。

我不知道如何列出已安装的容器、将它们移动(给新用户)、删除它们等。“podmas ps -a”列出了一个正在运行的容器,但仅列出了高级信息。

答案1

Podman 将容器相关文件存储在~/.local/share/containers/~运行容器的用户的主目录)下。

在您的场景中,您可以通过将该目录复制到 root 的主目录来节省一些下载时间:

sudo mkdir -p /root/.local/share
sudo cp -a ~/.local/share/containers /root/.local/share

但您仍然需要运行podman pull以确保一切设置正确。

相关内容