【发布时间】:2020-04-11 02:13:57
【问题描述】:
正在探索如何使用containerd 代替 dockerd。这仅用于学习和作为 cli 工具,而不是用于任何管道或自动化。
到目前为止,关于在 cli 中使用 containerd 的文档(通过 ctr)非常有限。甚至官方文档都在使用 Go lang 直接使用containerd。
我学到的是ctr命令扮演docker命令控制containerd的作用。到目前为止,我已经创建了一个 docker 映像并将其导出为 .tar 格式。现在使用ctr i import hello.tar,我已将其作为图像导入。
现在ctr i ls 给了我以下输出:
REF TYPE DIGEST SIZE PLATFORMS LABELS
docker.io/library/hello-java-app:latest application/vnd.oci.image.manifest.v1+json sha256:ef4acfd85c856ea020328959ff3cac23f37fa639b7edfb1691619d9bfe1e06c7 628.7 MiB linux/amd64 -
尝试运行容器时要求我提供图像 ID:
root@slave-node:~/images/sample# ctr run
ctr: image ref must be provided
root@slave-node:~/images/sample# ctr run docker.io/library/hello-java-app:latest
ctr: container id must be provided
我不确定从哪里获取图像 ID。是否有任何与ctr 或containerd 相关的文档对初学者有帮助?
对我来说,仅将图像作为容器运行就足够了。
【问题讨论】:
-
在
ctr run中使用更多参数时需要考虑的一些事项。例如。同时使用--uidmap和--gidmap,以防您想在没有主机root 权限的情况下运行容器(请参阅this question 为什么)。同样使用--net-host使主机网络可用不适用于无根容器(请参阅here)
标签: docker containers containerd