文档章节

Docker 容器简介

architect刘源源
 architect刘源源
发布于 2018/12/24 17:05
字数 1445
阅读 17
收藏 0

阿里 2016 年的双十一,数万台服务器支持,所有的交易系统全部都跑在了 Docker 容
器中,撑起来每秒钟 17.5 万笔的交易峰值。4 小时 26 分 31 秒交易 362 亿,超过 2013 年
双十一全体交易,最终双十一交易额 1207 亿,全球之最。

要支持这么的大的访问量,就需要提升系统的并发量,要提升系统的并发量,最直接的
办法就是提升服务器的数量。阿里为支持双十一,提前准备万台服务器,万兆带宽。直播也
是如此事先要准备大量服务器,百万级粉丝需要准备上千台服务器。
但准备多少够呢?预计多了,成本就白支出了,预计少了,洪峰来了,系统倒了,现场
砸了,饭碗丢了。能否动态感知快速响应呢?这就是云所做的,而云背后就是 docker!

VM 虚拟机的出现可以让服务器资源可以充分利用,一台服务器上可以安装多个 VM,而
每个 VM 又形成资源隔离,使不同的 VM 可以使用同一台服务器,却互相不干扰。Docker 同
理,它也是将硬件资源抽象。
Docker 两个最重要的概念是镜像和容器。镜像类似虚拟机的快照,但更轻量,非常非
常轻量。举例来说,VM 相当于绿皮火车,Docker 就相当于劳斯莱斯小汽车。VM 的快照通
常 2~3G,而 Docker 只有 100~300M。

镜像  image
简单说,镜像就是一个只读模板。
创建 Docker 镜像有几种方式,多数是在一个现有镜像基础上创建新镜像,因为几乎你
需要的任何东西都有了公共镜像,包括所有主流 Linux 发行版,你应该不会找不到你需要
的镜像。不过就算你想从头构建一个镜像也有好几种方式。
实现的方式有两种:在一个文件 Dockerfile 中指定一个基础镜像及需要完成的修改;
或通过“运行”一个镜像,对其进行修改并提交。不同方式各有优点,不过一般会使用文件
Dockerfile 来指定所做的变化。
镜像拥有唯一 ID,以及一个供人阅读的名字和标签对。镜像可以命名为类似
ubuntu:latest、ubuntu:precise、django:1.6、django:1.7 等等。

9.1.5.2 容器  container
每个容器都是相互隔离的、保证安全的平台。可以把容器看做是一个简易版的 Linux
环境(包括 root 用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。
可以从镜像中创建容器,这等同于从快照中创建虚拟机,不过更轻量。应用是由容器运
行的。容器与虚拟机一样,是隔离的。它们也拥有一个唯一 ID 和唯一的供人阅读的名字。
容器有必要对外暴露服务,因此 Docker 允许暴露容器的特定端口。

容器启动时,将被分配一个随机的私有 IP,其它容器可以使用这个 IP 地址与其进行通
讯。这点非常重要,原因有二:一是它提供了容器间相互通信的渠道,二是容器将共享一个
本地网络。
要开启容器间通讯,Docker 允许你在创建一个新容器时引用其它现存容器,在你刚创
建的容器里被引用的容器将获得一个(你指定的)别名。我们就说,这两个容器链接在了一
起。
因此,如果 DB 容器已经在运行,我可以创建 web 服务器容器,并在创建时引用这个 DB
容器,给它一个别名,比如 dbapp。在这个新建的 web 服务器容器里,我可以在任何时候
使用主机名 dbapp 与 DB 容器进行通讯。

1. 虚拟化技术依赖物理 CPU 和内存,是硬件级别的;而 docker 构建在操作系统上,
利用操作系统的 containerization 容器技术,所以 docker 甚至可以在虚拟机
上运行。
2. 启动速度快,比 VM 快太多了,启动、停止、开始、重启都是秒级甚至毫秒级。
3. 轻量级虚拟化,在一台服务器上可以部署 100~1000 个 Container 容器。而 VM 一
台服务器能部署 10 到 20 就很不错了。
4. *Docker 是单线程,Docker 设计者极力推崇“一个容器一个进程的方式”。无法
很好地模拟一个完整的环境(详细参加 LXC)。
5. *当停止一个虚拟机时,可能除了一些临时文件,没有文件会被删除(业务产生的
文件);但当停止一个 Docker 容器,对初始状态(创建容器所用的镜像的状态)
做的所有变化都会丢失。这是使用 Docker 时必须做出的最大思维变化之一:容器
是短暂和一次性的。所以有种说法,例如 mysql 这样的数据库还是不要用 Docker
的好,因为数据库在使用过程中会有很多业务数据。
6. Docker 的安全性目前比 VM 要差。VM 做到资源完全隔离,而 Docker 会共享资源,
这就带来了安全的风险。

© 著作权归作者所有

下一篇: jsp之${CTX}理解
architect刘源源

architect刘源源

粉丝 164
博文 518
码字总数 922746
作品 0
浦东
程序员
私信 提问
下一代工具集 BuildKit 大揭秘,Docker 专家带你了解背后的点点滴滴

本文首发自“Docker公司”公众号(ID:docker-cn) 编译丨小东 每周一、三、五 与您不见不散! 上周,我们在 Docker 总部成功地举办了 Docker San Francisco 的分会活动。本次活动主要聚焦在...

docker公司
2018/08/06
0
0
Docker进阶与实战_帝都客_ pdf扫描版_完整版_资源免费下载

《Docker进阶与实战》由机械工业出版社出版。 PDF下载地址 :http://www.diduker.com/html/4640.html PDF相关截图 : 编辑推荐 作者简介 华为Docker实践小组,致力于容器技术探索,结合华为C...

909636801
2018/07/18
0
0
DevOps与微服务 ▎时速云Docker&Kubernetes技术沙龙第四期

时速云是国内领先的容器云平台与解决方案提供商,自成立之日起,就根植于技术社区,致力于推动以Docker为代表的容器技术在国内的发展。迄今为止我们已在北京成功举办三期Docker&Kubernetes技...

时速云
2016/06/13
207
0
云计算基础之Docker是什么?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/baidu_34122324/article/details/84206498 文章目录 1. 百科简介 2. 应用场景 3. 优点 1. 百科简介 Docker 是...

ashTake
2018/11/18
0
0
基于docker安装superset

superset简介 曾用名Caravel, Panoramix, 是由Airbnb(知名在线房屋短租公司)开源的数据分析与可视化平台, 该工具主要特点是可自助分析, 自定义仪表盘, 分析结果可视化(导出), 用户/角色权...

li木水
2018/08/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux的基本命令

目录的操作命令(增删改查) 增: mkdir 目录名称; 查: ls 可以看到该目录下的所有的目录和文件 ls -a,可以看到该目录下的所有文件和目录,包括隐藏的 ls -l,可以看到该目录下的所有目录和...

凹凸凸
今天
2
0
在古老unix中增加新用户

Installing 4.3 BSD Quasijarus on SIMH 目标:要在4.3BSD中新增加用户dmr,指定目录/home/dmr,uid为10 gid=31(guest组,系统已建立) 4.3BSD还没有adduser或useradd 直接修改/etc/passwd...

wangxuwei
今天
2
0
Bootstrap(六)表单样式

基本样式 所有设置了 .form-control 类的 <input>、<textarea> 和 <select> 元素都将被默认设置宽度属性为 width: 100%;。 将 label 元素和前面提到的控件包裹在 .form-group 中可以获得最好...

ZeroBit
昨天
3
0
SSL 证书格式转换

SSL 证书格式转换 不同服务器情况下,需要不同的证书格式。 比如 pem 转 pfx。 pem在window 平台下可以导入,但是无法正常使用。 需要转换成pfx。 推荐在线转换工具,由中国数字证书网站提供...

DrChenXX
昨天
2
0
HAProxy

xx

Canaan_
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部