docker 基础架构

前言

本文介绍docker的基础架构。

环境

操作系统:centos7
docker版本:docker-ce: 18.09

正文

简介

docker是典型的 c/s 架构。

通过docker-ce安装的docker,会默认安装两个组件(通过 docker version 命令可以查看):

  1. docker client:这里安装的是cli,提供命令行功能。
  2. docker server:docker具体功能的实现者。也称之为 docker engine、docker daemon。

docker server 就如一个常见的web server,对外提供restful api。
docker client 可以有多种形式,比如sdk、cli。cli为用户提供命令行方式,sdk为程序提供包形式。

docker的架构里还包含一个组件:docker registry。用于存储容器的镜像。

docker基础架构
docker 实现原理

主要依赖:Namespaces、Control groups、UnionFS

Namespaces:

命名空间,主要起隔离作用。
其中包含:
pid namespace:进程隔离
net namespace:网络管理
ipc namespace:IPC(进程间通信)资源管理
mnt namespace:文件系统挂载管理
uts namespace:内核和版本标识符隔离。

Control groups:

控制组:限制容器对物理资源的使用,比如cpu、内存。
依赖技术:cgroups。

UnionFS:

联合文件系统:为容器提供块功能,也就是文件系统。
也可使用其它类似UnionFS的软件:例如 AUFS, btrfs, vfs, DeviceMapper

Container format

容器格式:这是一个逻辑概念。
表示,将 Namespaces、Control groups、UnionFS 组合起来形成的一种容器。目前的组合方式称之为 libcontainer,这也是当前唯一提供的方式。
引入该概念,因为以后可能会出现其它形式的容器。

docker 创建一个容器的主要步骤
  1. 拉取镜像
  2. 创建一个容器(此时只是创建,还未启动)
  3. 为容器分配文件系统
  4. 为容器创建网络
  5. 启动容器。

注意,当docker run 携带命令,则会覆盖掉镜像中的CMD。如下:

docker run -i -t ubuntu /bin/bash

此时无论ubuntu镜像的CMD是什么都不会执行,而会去执行 /bin/bash。

容器的生命周期
image.png

这张图已经十分详细,不再赘述。若看不懂,也仅仅是因为不熟悉docker的使用。

扩展

无。

参考

https://docs.docker.com/engine/docker-overview/#docker-architecture

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,864评论 6 494
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,175评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,401评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,170评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,276评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,364评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,401评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,179评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,604评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,902评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,070评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,751评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,380评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,077评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,312评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,924评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,957评论 2 351

推荐阅读更多精彩内容

  • Docker容器技术已经发展了好些年,在很多项目都有应用,线上运行也很稳定。整理了部分Docker的学习笔记以及新...
    __七把刀__阅读 11,439评论 0 58
  • 一、Docker 简介 Docker 两个主要部件:Docker: 开源的容器虚拟化平台Docker Hub: 用...
    R_X阅读 4,383评论 0 27
  • 前言 本文首先介绍 Docker 的整体概念,接着讲述 Docker 的基础用法,网上已经有很多好文章了,本文只是...
    被称为L的男人阅读 639评论 2 5
  • Docker 的体系结构 docker 使用 C/S 架构,docker daemon 作为 server 端接受...
    凤落溪凰落地阅读 1,482评论 0 2
  • 为什么总是睡不醒? 是熬夜?是年龄大了体力恢复慢?还是缺少热情? 每天到办公室的第一件事就是冲杯咖啡,从无例外。 ...
    生活随性就好阅读 161评论 0 0