Docker1-初识容器与 Docker

引狼

1.1.Docker 简介

如果说主机时代大家比拼的是单个服务器物理性能(比如 CPU 主频和内存), 那么在云时代, 最为看重的则是凭借虚拟化技术所构建的集群处理能力.

传统来看, 虚拟化既可以通过硬件模拟来实现, 也可以通过操作系统软件来实现.

而容器技术则更为优雅, 它充分利用了操作系统本身的机制和特性, 可以实现远超传统虚拟机的轻量级虚拟化. 因此, 有人甚至把它称为 "新一代的虚拟化" 技术, 并将基于容器打造的云平台亲切的称为"容器云".

1.什么是 Docker

Docker 的构想是要实现对应用的封装(Packaging), 分发(Distribution), 部署(Deployment), 运行(Runtime)生命周期进行管理, 达到应用组件 "一次封装, 到处运行" 的目的.

这里的应用组件, 既可以是一个 web 应用, 一个编译环境, 也可以是一套数据库平台服务, 甚至是一个操作系统或集群.

简单的讲, 可以将 Docker 容器理解为一种轻量级的沙盒, 每个容器内运行着一个应用, 不同的容器相互隔离, 容器之间也可以通过网络互相通信.

容器的创建和停止都十分快速, 几乎个创建和终止原生应用一致; 另外, 容器自身对系统资源的额外需求也十分有限, 远远低于传统虚拟机. 很多时候, 甚至直接把容器当做应用本身也没有任何问题.

我个人更倾向于将 Docker 理解为一个软件容器平台, 通过 Docker 我们可以创建容器和管理容器的生命周期. 并且 Docker 还能将应用自动部署到容器中.

2.什么是容器

容器是一种虚拟化的方案, 属于操作系统级别的虚拟化技术, 所以只能运行在相同或相似内核的操作系统; 而Docker依赖于 Linux 内核特性: Namespace 和 Cgroups, 所以只能运行在基于 Linux 内核上.


1.2.为什么要使用 Docker

1.Docker 容器虚拟化的好处

在云时代, 开发者创建的应用必须要能很方便的在网络上传播, 也就是说应用必须脱离底层物理硬件的限制; 同时必须是 "任何时间, 任何地点" 可以获取的.

因此, 开发者需要一种新型的创建分布式应用程序的方式, 快速分发和部署, 这正是 Docker 所能够提供的最大优势.

举个简单的例子, 假设用户视图基于常见的Linux+Tomcat+Java 组合来构建一个网站. 按照传统的做法, 首先需要安装 Tomcat 和 Java, 之后分别对他们进行配置; 还需要进行功能测试, 看是否工作正常, 如果不正常, 则进行调试和追踪, 意味着需要付出很多时间. 如果应用数目变多, 事情会变得更加难以处理.

如果一旦需要服务器迁移(例如从亚马逊云迁移到其他云), 那么还需要对应用进行重新部署和调试.

而Docker 提供了一种更为聪明的方式, 通过容器来打包应用, 意味着迁移的时候, 只需要在新的服务器上启动需要的容器就可以了, 无论新旧服务器还是统一类型的平台.

2.Docker 在开发和运维的优势

**更快速的交付和部署: **使用 Docker, 开发人员可以使用镜像来快速构建一套标准的开发环境; 开发完成后, 测试和运维人员可以直接使用完全相同的环境部署代码.只要开发测试通过的代码, 就可以确保在生产环境无缝运行.

**更高效的资源利用: **Docker 容器的运行不需要额外的虚拟化管理程序, 它是内核级的虚拟化, 可以实现更高的性能, 同时对资源的额外需求很低.

**更轻松的迁移和扩展: **Docker 容器几乎可以在任意的平台上运行, 包括物理机 虚拟机 公有云 私有云 个人电脑 服务器等, 同时支持主流的操作系统发行版. 让用户可以在不同平台之间轻松迁移应用.

**更简单的更新管理: **使用 Dockerfile, 只需要小小的配置修改, 就可以替代以往大量的更新工作. 并且所有修改都已增量的方式被分发和更新, 从而实现自动化并高效的容器管理.

3.容器和虚拟机比较

容器和虚拟机具有类似的资源隔离和分配优势, 但功能不同
因为容器虚拟化操作系统, 而不是硬件, 容器更加便携和高效.

左图是Docker容器
我们只需要在我们的操作系统上安装 Docker 容器就可以创建多个应用和依赖的库. 这样就大大减少了资源的占用.

右图是虚拟机
我们将一台服务器上安装上虚拟机软件, 并且创建出三个虚拟机, 每个虚拟机都有独立的系统, 独立的依赖库和我们的应用.
这样做会非常占用磁盘空间, 一个几十兆的应用, 就需要占用几G 的磁盘空间.

Docker 容器很快, 启动和停止可以在秒级实现, 而传统的虚拟机方式需要数分钟.
Docker 容器对系统资源需求很少, 一台主机上可以同时运行数万个 Docker 通过类似 GIT 设计理念的操作来方便获取, 发布和更新应用镜像, 存储复用, 增量更新.
Docker 通过 Dockerfile 支持灵活的自动化创建和部署机制, 提高工作效率, 使流程标准化.


Docker 架构

Docker 使用客户端 - 服务器架构.
Docker 客户端与 Docker 守护进程进行交流.
Docker 客户端和守护进程可以在同一个系统上运行, 也可以进行远程连接.
Docker 客户端和守护进程使用REST API, 通过 UNIX 套接字或网络接口进行通信.


Docker 架构

Docker 客户端

Docker client 是 Docker 用户与 Docker 进行交互的主要方式. 并且
Docker 客户端可以与多个守护进程通信。

Docker 守护进程

Docker 守护程序监听 Docker API 请求并管理 Docker 对象, 如镜像,容器, 网络. 守护进程还可以与其他守护进程通信来管理Docker服务。

Docker 的大部分操作都是围绕着它的三大核心概念--镜像 容器和仓库而展开.

Docker Image 镜像

镜像就是用来创建容器的模板, 提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)

通常镜像是基于另一个镜像创建的, 这有点想 ps 的图层, 每一层都包含特定的文件.

镜像很多工具都没有(例如 VI), 我们可以通过镜像叠加的方式来增加功能.
镜像是只读的, 容器从镜像启动的时候, 会在镜像的最上层创建一个可写层.

Docker Container 容器

容器类似于一个轻量级的沙箱, Docker 利用容器来运行和隔离应用. 容器是从镜像创建的应用运行实例. 可以将其启动 开始 停止 删除, 而这些容器都是彼此相互隔离的, 互不可见的.

可以把容器看做是一个简易版的 Linux 系统环境(包括 root 用户权限 进程空间 用户空间和网络空间等).

Docker Registry 仓库

Docker 仓库类似于 Git 仓库, 它是 Docker 集中存放镜像文件的场所.

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

推荐阅读更多精彩内容