gpt4 book ai didi

docker - runc 和 ctr 命令不显示 docker 图像和容器

转载 作者:行者123 更新时间:2023-12-02 18:14:01 34 4
gpt4 key购买 nike

我有多个 Docker 镜像和容器在 VM 上运行。但是像“runc list”这样的命令没有列出任何这些。

如何让 runc/containerd 知道我现有的 docker 镜像?

最佳答案

运行时( runc )使用所谓的运行时根目录来存储和获取有关容器的信息。在这个根目录下,runc放置子目录(每个容器一个),每个子目录都包含 state.json文件,容器状态描述所在的位置。

运行时根目录的默认位置是 /run/runc (对于非无根容器)或 $XDG_RUNTIME_DIR/runc (对于无根容器) - 后者通常也指向 /run 下的某个地方(例如 /run/user/$UID/runc )。

当容器引擎调用 runc ,它可能会覆盖默认运行时根目录并指定自定义目录( --root 选项 runc )。 Docker 使用这种可能性,例如在我的盒子上,它指定 /run/docker/runtime-runc/moby作为运行时根。

也就是说,要使 runc list要查看您的 Docker 容器,您必须通过指定 --root 将其指向 Docker 的运行时根目录。选项。此外,鉴于默认情况下 Docker 容器不是无根的,您将需要适当的权限来访问运行时根(例如使用 sudo )。

所以,这应该是如何工作的:

$ docker run -d alpine sleep 1000
4acd4af5ba8da324b7a902618aeb3fd0b8fce39db5285546e1f80169f157fc69

$ sudo runc --root /run/docker/runtime-runc/moby/ list
ID PID STATUS BUNDLE CREATED OWNER
4acd4af5ba8da324b7a902618aeb3fd0b8fce39db5285546e1f80169f157fc69 18372 running /run/docker/containerd/daemon/io.containerd.runtime.v1.linux/moby/4acd4af5ba8da324b7a902618aeb3fd0b8fce39db5285546e1f80169f157fc69 2019-07-12T17:33:23.401746168Z root

对于图片,您无法制作 runc看看它们,因为它根本没有图像的概念 - 相反,它在 bundles 上运行.创建包(例如基于图像)是调用者的责任(在您的情况下 - containerd)。

关于docker - runc 和 ctr 命令不显示 docker 图像和容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57009928/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com