欢迎大家来到IT世界,在知识的湖畔探索吧!
runC是什么
runC是轻量级容器运行工具,它根据 OCI 标准来创建和运行容器。
runC与docker之间的关系
runC与docker之间有什么关系呢?如下图:
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.amd64 改名赋予执行权限并放到bin目录
mv runc.amd64 rc && chmod +x rc && mv rc /usr/local/bin
欢迎大家来到IT世界,在知识的湖畔探索吧!
验证:rc -v
准备一个镜像
docker镜像与runC是兼容的。下载一个docker镜像然后导出镜像文件
欢迎大家来到IT世界,在知识的湖畔探索吧!#下载镜像
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
运行容器
欢迎大家来到IT世界,在知识的湖畔探索吧!#在alpine目录, foo为容器名称
rc yun foo
查看运行的容器:
#在另外一个终端
rc list
了解runC有助于了解docker底层实现。
以上就是关于今天的全部内容,下期将给大家带来《简述关于containerd设置代理》,敬请期待~
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/51135.html