资讯专栏INFORMATION COLUMN

Docker 实践(一):了解架构

187J3X1 / 1444人阅读

摘要:总架构图架构系统使用了的架构,通过请求来管理的镜像和容器等。架构示意图专门服务于,其作用是接受并调度分发发送的请求。

架构是一个很大的概念,也绝非一两篇文章能写清楚的,这里记录自己认为重要的部分和相关的学习资料。

Docker 总架构图

C/S 架构

docker 系统使用了 C/S 的架构,docker client 通过 REST API 请求 docker daemon 来管理 docker 的镜像和容器等。

Server 端驻守在后台,称之为 docker daemon

Client 端是一个 CLI 程序,可以在命令行中通过 docker 这个二进制文件进行交互

Docker client

Docker client 是给用户和 Docker daemon 建立通信的客户端,安装了 docker 之后,二进制文件 docker 就是 Docker client,与 Docker daemon 交互,实现对 Docker image 和 container 的管理请求。

Docker client 与 docker daemon 建立请求的方式有三种,分别是:

tcp://host:port

unix://path/to/socket

fd://socketfd

Docker daemon

Docker daemon 是一个常驻后台的系统进程,所谓“运行 docker”,指的就是运行 Docker daemon,其作用主要有以下两点:

接受并处理 Docker Client 发送的请求

管理所有的 Docker containers 和 Docker images

Docker daemon 的架构大致可以分为三部分:Docker Server、Engine 和 Job。

Docker daemon 架构示意图

Docker Server 专门服务于 Docker Client,其作用是接受并调度分发 Docker client 发送的请求。

Engine 是 Docker 中的运行引擎, 是其运行的核心模块。Engine 中存储着大量的容器信息,也管理着 Docker 大部分 Job 的执行。

Job 是 Docker 中最基本的工作执行单元,Docker daemon 可以完成的每一项工作都能呈现为一个 Job。

Linux 下,使用 dockerd 命令,便可以 daemon 模式操作 docker

Docker Remote Api

docker daemon 会监听 unix:///var/run/docker.sock 的 socket,提供一个 RESTful 的 Remote API,可供客户端访问,例如:

curl --unix-socket /var/run/docker.sock http:/containers/json?all=1

便可得到所有的容器列表,相当于在 terminal 中执行了 docker ps -a 命令。

注:如果需要自己实现 docker client 的,可访问 Docker Remote API 参考相关文档。

docker daemon 监听来自 remote api 的请求的方式有三种,unix、tcp 和 fd。

默认情况下,监听的是 unix:///var/run/docker.sock,在 linux 下,想要改变其监听方式,可以使用 dockerd 命令:

dockerd -H 0.0.0.0:5555

便可将 docker daemon 的监听方式变为 tcp://host:port 的方式,然后客户端可以

docker -H :5555 pull ubuntu

来访问 daemon

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26694.html

相关文章

  • 【推荐】最新200篇:技术文章整理

    摘要:作为面试官,我是如何甄别应聘者的包装程度语言和等其他语言的对比分析和主从复制的原理详解和持久化的原理是什么面试中经常被问到的持久化与恢复实现故障恢复自动化详解哨兵技术查漏补缺最易错过的技术要点大扫盲意外宕机不难解决,但你真的懂数据恢复吗每秒 作为面试官,我是如何甄别应聘者的包装程度Go语言和Java、python等其他语言的对比分析 Redis和MySQL Redis:主从复制的原理详...

    BicycleWarrior 评论0 收藏0
  • 【推荐】最新200篇:技术文章整理

    摘要:作为面试官,我是如何甄别应聘者的包装程度语言和等其他语言的对比分析和主从复制的原理详解和持久化的原理是什么面试中经常被问到的持久化与恢复实现故障恢复自动化详解哨兵技术查漏补缺最易错过的技术要点大扫盲意外宕机不难解决,但你真的懂数据恢复吗每秒 作为面试官,我是如何甄别应聘者的包装程度Go语言和Java、python等其他语言的对比分析 Redis和MySQL Redis:主从复制的原理详...

    tommego 评论0 收藏0
  • SegmentFault 技术周刊 Vol.5 - Docker丨Build, Ship, Run,

    摘要:此刻的后手指依旧飞速地敲打键盘,丝毫没有要停不下来意思。阅读本期技术周刊,你不光能弄明白什么是,使用的意义何在,还将被传授秘籍,以达的境界。周刊筛选的每篇内容,是作者的独到见解,踩坑总结和经验分享。 showImg(https://segmentfault.com/img/bVC5qJ?w=900&h=385); 啪嗒啪嗒,啪嗒啪嗒,听到后排动感十足的清脆键盘响,我就能猜到公司程序员定...

    Panda 评论0 收藏0
  • Docker正方登场——未来正在远方……

    摘要:并不是因为它是闪亮的新事物或者它是一些虚构的最佳实践,而是因为像亚马逊或者已经在这上面投入了年的心血,他们告诉了我们如何构建真正有规模的系统。截止目前,我们已经部署了由亚马逊等提供的重量级虚拟化服务器。 周一时候数人云与大家分享了一篇关于Docker的反方言论——《一份Docker的反方辩论——我还是用Heroku好了》,一周之后,同样的作者,又为Docker正名,写了一篇正方言论。D...

    waruqi 评论0 收藏0

发表评论

0条评论

187J3X1

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<