加入收藏 | 设为首页 | 会员中心 | 我要投稿 济宁站长网 (https://www.0537zz.cn/)- 行业智能、边缘计算、专有云、AI硬件、5G!
当前位置: 首页 > 综合聚焦 > 移动互联 > 评测 > 正文

Docker底层原理及源码分析 Docker 架构

发布时间:2019-10-20 10:36:35 所属栏目:评测 来源:青峰科技
导读:前言 Docker 简介 Docker 是 Docker 公司开源的一个基于轻量级虚拟化技术的容器引擎项目, 整个项目基于 Go 语言开发,并遵从 Apache 2.0 协议。目前,Docker 可以在容器内部快速自动化部署应用,并可以通过内核虚拟化技术(namespaces 及 cgroups 等)来提供

(8) 若以上操作全部正常执行,没有返回错误或异常,则 Docker Client 收到 Docker Server 返回状态之后,发起第二次 HTTP 请求。请求方法为"POST",请求 URL 为"/containers/"+container_ID+"/start";

(9) Docker Server 接受以上 HTTP 请求,并交给 mux.Router,mux.Router 通过 URL 以及请求方法来确定执行该请求的具体 handler;

(10)mux.Router 将请求路由分发至相应的 handler,具体为 PostContainersStart;

(11) 在 PostContainersStart 这个 handler 之中,名为"start"的 job 被创建,并开始执行;

(12) 名为"start"的 job 执行完初步的配置工作后,开始配置与创建网络环境,调用 networkdriver;

(13)networkdriver 需要为指定的 Docker 容器创建网络接口设备,并为其分配 IP,port,以及设置防火墙规则,相应的操作转交至 libcontainer 中的 netlink 包来完成;

(14)netlink 完成 Docker 容器的网络环境配置与创建;

(15) 返回至名为"start"的 job,执行完一些辅助性操作后,job 开始执行用户指令,调用 execdriver;

(16)execdriver 被调用,初始化 Docker 容器内部的运行环境,如命名空间,资源控制与隔离,以及用户命令的执行,相应的操作转交至 libcontainer 来完成;

(17)libcontainer 被调用,完成 Docker 容器内部的运行环境初始化,并最终执行用户要求启动的命令。

【编辑推荐】

  1. 详解Docker负载均衡和服务发现
  2. 一文看懂Docker容器技术架构及其中的各个模块
  3. 云服务OpenAPI的7大挑战,架构师如何应对?
【责任编辑:武晓燕 TEL:(010)68476606】
点赞 0

(编辑:济宁站长网)

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

推荐文章
    热点阅读