玖叶教程网

前端编程开发入门

简述关于runC之运行容器(.run 运行)

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

验证: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设置代理》,敬请期待~

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言