C.1 docker overview

概述

docker 是一个开发、交付和运行的开放平台。docker 能使你的应用和基础设施解耦,从而使软件交付更加的敏捷。docker 能像管理软件一样管理基础设施。利用 docker 的特性,能快速的打包、测试和部署代码,从而明显的减少编写的代码部署到生产环境的周期。

docker 的打包和运行应用程序都是具有独立的环境,体现了其隔离特性。docker 不需要像虚拟机一样去虚拟硬件,而是直接运行在主机的内核上,体现轻量特性。这些特性可以让更多的容器运行在同一个物理机或者虚拟机上。

docker 提供的能力:

  • 将应用放入容器中
  • 让容器作为测试和交付的单元
  • 以容器的形式或者编排服务的形式部署于生产环境。可以是本地数据中心,也可以是云主机

docker 官网介绍:

Docker is an open platform for developing, shipping, and running applications. Docker enables you to separate your applications from your infrastructure so you can deliver software quickly. With Docker, you can manage your infrastructure in the same ways you manage your applications. By taking advantage of Docker’s methodologies for shipping, testing, and deploying code quickly, you can significantly reduce the delay between writing code and running it in production.

Docker provides the ability to package and run an application in a loosely isolated environment called a container. The isolation and security allow you to run many containers simultaneously on a given host. Containers are lightweight because they don’t need the extra load of a hypervisor, but run directly within the host machine’s kernel. This means you can run more containers on a given hardware combination than if you were using virtual machines. You can even run Docker containers within host machines that are actually virtual machines!

组成结构

docker engine 的组成部分:

  • docker CLI:接收并解析客户端发送来的指令,例如:docker run
  • REST API:用来和 daemon 交互的 API 接口
  • docker daemon:docker 的守护进程,负责执行客户端发送来的命令
image

docker engine 的职能:

  • 管理镜像
  • 管理容器
  • 管理网络
  • 管理卷(挂载在宿主机的文件系统)

体系结构

  • C/S 架构,客户端(Client)和服务端(docker 守护进程-Docker daemon)
  • 客户端负责发送构建(docker build)、拉取(docker pull)、运行(docker run)指令
  • 守护进程负责执行构建、拉取、启动指令
  • 守护进程从仓库(Registry)拉取镜像(Images)
  • 守护进程将本地的镜像启动后变为容器(Containers)
  • 客户端和守护进程之间使用REST api、unix套接字进行通信
  • 客户端和守护进程可以在同一个系统上运行

docker 官方提供的架构图

image

特点

  • 让复杂的安装一条命令解决
  • 让服务秒级启动
  • 让资源最大化使用
  • 隔离性,文件隔离、资源隔离、网络隔离

名词解释

  • 仓库:存放镜像的场所,类似于maven库,npm库
  • 镜像:只读的程序包,类似与jar包,npm包,可以叠加很多层
  • 容器:镜像运行后形成的一个实例,一个镜像可以启动多个容器,类似于jar启动的进程
  • tag:镜像的标签,相当于版本号
  • docker client:客户端通过命令与守护进程交互,类似于 mysql 客户端
  • docker daemon:docker 的守护进程,接收并执行客户端发送来的指令,类似于mysql服务端
  • docker host:运行 docker 守护进程和容器的宿主机器(物理机/虚拟机)
  • docker-io:就是docker,ubuntu在维护(不是非常清楚)
  • docker-engine:就是docker,docker deamon + REST API + docker CLI
  • docker-ce:社区版本,免费,在docker17及以上开始普及docker-ce和docker-ee
  • docker-ee:企业版本,收费,docker准备收割的利器
  • docker-machine:创建docker host的工具,可以在一台物理机上模拟多个docker环境
  • docker swarm:docker的集群管理工具,(1.12及以上版本内置了swarm)
  • docker compose:单机版的docker服务编排工具,使用compose file v1/v2面向容器编排设计
  • docker stack:docker stack deploy,跨宿主机的服务编排,使用compose file V3版本。(1.13及以上版本内置了stack)
  • AFUS:docker的分层文件系统,上层依赖底层。Docker镜像是由多个文件系统(只读层)叠加而成
  • docker volume:由于容器中存储数据容易丢失,所以将持久化的数据以映射的形式,将宿主机的目录挂载到容器的目录上。类似于服务器的共享存储。

版本说明

  • 低版本的docker没有swarm功能,必须在1.12版本及以上
  • 1.13版本以上docker自带stack
  • 1.12发布于2016.6,适合centos-7-1511
  • 1.13发布于2017.1,适合centos-7-1611

容器和虚拟机的区别

虚拟机(Virtual Machine):
虚拟硬件设备作为基础设施,每个虚拟机拥有独享的内核,能运行完整的操作系统,操作系统级别的隔离。

容器LXC(Linux Container):
轻量级的虚拟化,生成独立的运行环境,和主机共享内核,应用程序级别的隔离。

参考资料

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

推荐阅读更多精彩内容

  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,499评论 15 147
  • 以下原文转载于(https://docs.docker.com/docker-for-mac/)(想找中文版的最新...
    Veekend阅读 7,536评论 0 17
  • 一、Docker 简介 Docker 两个主要部件:Docker: 开源的容器虚拟化平台Docker Hub: 用...
    R_X阅读 4,373评论 0 27
  • docker基本概念 1. Image Definition 镜像 Image 就是一堆只读层 read-only...
    慢清尘阅读 8,719评论 1 21
  • 文/洛小简 1夜色深深沉默了寒冰,末班车车内荡荡空空,她却还要以疲惫的心迎黎明。 2飞鸟飞不过寂寞的海,可他的爱,...
    洛小简阅读 439评论 0 2