简述关于runC之运行容器

简述关于runC之运行容器runC是什么runC是轻量级容器运行工具,它根据 OCI 标准来创建和运行容器。runC与docker之间的关系runC与docker之间有什

大家好,欢迎来到IT知识分享网。

runC是什么

runC是轻量级容器运行工具,它根据 OCI 标准来创建和运行容器。

runC与docker之间的关系

runC与docker之间有什么关系呢?如下图:

简述关于runC之运行容器

docker由docker client和 dockerd组成,前者为客服端,后者为对容器相关操作的api的最上层封装,docker client通过api调用dockerd;containerd是dockerd和runc之间的一个中间交流组件,通过grpc的方式与dockerd通讯;docker-shim是一个运行容器的真实载体,每启动一个容器都会启动一个新docker-shim进程;最终docker-shim运行runc去运行容器里面的程序。

下面我们用runC来运行一个容器。

下载

https://github.com/opencontainers/runc

简述关于runC之运行容器

简述关于runC之运行容器

把下载好的runc.amd64 改名赋予执行权限并放到bin目录

mv runc.amd64 rc && chmod +x rc && mv rc /usr/local/bin

验证:rc -v

准备一个镜像

docker镜像与runC是兼容的。下载一个docker镜像然后导出镜像文件

#下载镜像
docker pull alpine:3.15
#创建空目录
mkdir -p alpine/rootfs
#导出镜像源文件
docker export $(docker create alpine:3.15) | tar -C alpine/rootfs -xvf -
cd alpine/
#生成config.json文件
rc spec

config.json配置文件中的:

"root": {
                "path": "rootfs",
                "readonly": true
        },

代表 alpine/rootfs 中的 rootfs

运行容器

#在alpine目录, foo为容器名称
rc yun foo

查看运行的容器:

#在另外一个终端
rc list

了解runC有助于了解docker底层实现。

以上就是关于今天的全部内容,下期将给大家带来《简述关于containerd设置代理》,敬请期待~

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/61946.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信