加入收藏 | 设为首页 | 会员中心 | 我要投稿 武陵站长网 (https://www.50888.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 系统 > 正文

分析Docker、Containerd、RunC分别是什么

发布时间:2021-10-28 13:49:59 所属栏目:系统 来源:互联网
导读:Docker标准化的仅仅是第三步。在此之前,每个人都认为容器运行时支持Docker支持的所有功能。最终,Docker方面澄清:原始OCI规范指出,只有运行容器的部分组成了runtime。这种概念失联一直持续到今天,并使容器运行时成为一个令人困惑的话题。希望我能证明双
Docker标准化的仅仅是第三步。在此之前,每个人都认为容器运行时支持Docker支持的所有功能。最终,Docker方面澄清:原始OCI规范指出,只有“运行容器”的部分组成了runtime。这种“概念失联”一直持续到今天,并使“容器运行时”成为一个令人困惑的话题。希望我能证明双方都不是完全错误的,并且在本文中将广泛使用该术语。RunC 就可以按照这个 OCI 文档来创建一个符合规范的容器,既然是标准肯定就有其他 OCI 实现,比如 Kata、gVisor 这些容器运行时都是符合 OCI 标准的。
 
怎么使用 runc
 create the bundle 
$ mkdir -p /mycontainer/rootfs 
 
# [ab]use Docker to copy a root fs into the bundle 
$ docker export $(docker create busybox) | tar -C /mycontainer/rootfs -xvf - 
 
# create the specification, by default sh will be the entrypoint of the container 
$ cd /mycontainer 
$ runc spec 
 
# launch the container 
$ sudo -i 
$ cd /mycontainer 
$ runc run mycontainerid 
 
# list containers 
$ runc list 
 
# stop the container 
$ runc kill mycontainerid 
 
# cleanup 
$ runc delete mycontainerid 
在命令行中使用 runc,我们可以根据需要启动任意数量的容器。但是,如果我们想自动化这个过程,我们需要一个容器管理器。为什么这样?想象一下,我们需要启动数十个容器来跟踪它们的状态。其中一些需要在失败时重新启动,需要在终止时释放资源,必须从注册表中提取图像,需要配置容器间网络等等。就需要有Low-Level和High-Level容器运行时,runc就是Low-Level实现的实现。

(编辑:武陵站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读