首次使用containerd

为了更深入地理解Docker,似乎需要对containerd也有一定的了解,所以做个备忘录。

containerd 是什么

Docker社正在开发的容器运行时。

根据计划,将捐赠给一个开放的社区。
主要职责包括对正在运行的容器进行管理和监控,以及管理容器镜像(推送到注册表、拉取等)。
容器执行层的运行时目前使用的是runC,但计划允许使用任何符合OCI标准的运行时。

Docker和containerd

Docker是一个拥有所有必要功能的平台,用于使用容器。
containerd是实现Docker作为平台的组件之一。
如链接中的图所示,它充当容器运行时的角色。

containerd 和 runc

runC的角色分配与被称为相同容器运行时的位置图如链接所示。

开始

请按照 README 文件中的指示进行操作。只列举命令。

    install

从https://github.com/docker/containerd/releases进行二进制安装。

$ ctr --help
NAME:
   ctr - High performance container daemon cli

USAGE:
   ctr [global options] command [command options] [arguments...]

VERSION:
   0.2.3

COMMANDS:
   checkpoints  list all checkpoints
   containers   interact with running containers
   events   receive events from the containerd daemon
   state    get a raw dump of the containerd state
   version  return the daemon version
   help, h  Shows a list of commands or help for one command
.
..
    OCI bundle作成

请参考 https://github.com/docker/containerd/blob/v0.2.x/docs/bundle.md。

$ mkdir -p redis/rootfs
$ docker pull redis
$ docker create --name tempredis redis
$ docker export tempredis | tar -C redis/rootfs -xf -
$ docker rm tempredis
$ vi redis/config.json // config file作成
省略。
$ sudo mv redis /containers/
    実行
// containerdの実行
$ sudo containerd
// container実行
$ sudo ctr containers start redis /containers/redis
$ sudo ctr containers list
ID                  PATH                STATUS              PROCESSES
redis               /containers/redis   running             init
广告
将在 10 秒后关闭
bannerAds