Docker   发布时间:2019-11-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了从 docker 到 runC大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

》和《》中分别介绍了 runC 和 containerd。本文我们将结合 docker 中的其它组件探索 docker 是如何把这些组件组织起来协调工作的。

/usr/bin/

ENGIne。该程序的安装路径为:

/usr/bin/

考《》。该程序的安装路径为:

/usr/bin/

/usr/bin/

》。该程序的安装路径为:

/usr/bin/

Hello world 开始

Hello-world 镜像来验证安装是否成功,但是透过这个镜像我们还能看到更多的信息:

$ docker run Hello-world

title="从 docker 到 runC" alt="从 docker 到 runC" src="https://cn.js-code.com/res/2019/02-09/09/dfd604bb4302d89960329464f7484697.png" >

Hello-world 容器的运行经历了如下四步:

如何创建并运行容器的?

title="从 docker 到 runC" alt="从 docker 到 runC" src="https://cn.js-code.com/res/2019/02-09/09/cfbb997374dd0c2b38e8de43a251d6df.png" >

ENGIne API

(REST)的方式对外提供服务,Engine API 里描述了 dockerd 支持的所有请求。Docker 客户端与 dockerd 之间就是通过 REST 的方式通信的。在 ubuntu 16.04 中,dockerd 默认是不监听 tcp 端口的,为了方便演示,我们让 dockerd 监听 tcp 端口。这样就可以使用 curl 代替 docker 客户端向 dockerd 发送请求了。具体的操作为,先

#

$ systemctl daemon- systemctl restart docker.service

从 docker 到 runC

$ curl -X POST

从 docker 到 runC

来完成了。Dockerd 与 docker-containerd 之间是通过 grpc 协议通信的。当 docker-containerd 收到 dockerd 启动容器的请求之后,会做一些初始化工作,然后启动 进程,并将相关配置作为参数传给它。docker-containerd 负责管理所有本机正在运行的容器,而一个 docker-containerd-shim 进程只负责管理一个运行的容器,它相当于 的一个封装,充当 docker-containerd 和 docker-runc 之间的桥梁,docker-runc 能干的就交给 docker-runc 来做,docker-runc 做不了的就放到这里来做。下面我们用 ubuntu 镜像运行一个容器:

$ docker run - ubuntu bash

从 docker 到 runC

------------

可以看到对 containerd-shim 的一些解释。

》和《》中分别介绍了 runC 和 containerd 等 docker 的核心组件。本文则通过 demo 演示了在创建、运行容器的过程中这些组件如何配合 docker ENGIne 完成相关的任务,以及相关进程之间的关系和作用。希望本文可以帮助大家理解 docker 的整体架构及其组件间的协作方式。

考:

大佬总结

以上是大佬教程为你收集整理的从 docker 到 runC全部内容,希望文章能够帮你解决从 docker 到 runC所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: