Skip to content

Commit a59a3a6

Browse files
authored
Merge pull request #2 from CyC2018/master
merge
2 parents 849f8d2 + 8ee390c commit a59a3a6

File tree

78 files changed

+5846
-4131
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

78 files changed

+5846
-4131
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
.DS_Store
2+
*.txt

BOOKLIST.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -79,4 +79,4 @@
7979

8080
- [JavaScript 语言精粹](https://book.douban.com/subject/3590768/)
8181
- [利用 Python 进行数据分析](https://book.douban.com/subject/25779298/)
82-
- [概率论与数理统计](https://book.douban.com/subject/2201479/)
82+
- [概率论与数理统计](https://book.douban.com/subject/2201479/)

README.md

+134-71
Large diffs are not rendered by default.

SUMMARY.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
This file used to generate gitbook catalogue.
2+
13
# Summary
24

35
* 算法
@@ -32,5 +34,3 @@
3234

3335

3436

35-
36-

notes/Docker.md

+102
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
<!-- GFM-TOC -->
2+
* [一、解决的问题](#一解决的问题)
3+
* [二、与虚拟机的比较](#二与虚拟机的比较)
4+
* [三、优势](#三优势)
5+
* [四、使用场景](#四使用场景)
6+
* [五、镜像与容器](#五镜像与容器)
7+
<!-- GFM-TOC -->
8+
9+
10+
<div align="center"> <img src="../pics//011f3ef6-d824-4d43-8b2c-36dab8eaaa72-1.png"/> </div><br>
11+
12+
# 一、解决的问题
13+
14+
由于不同的机器有不同的操作系统,以及不同的库和组件,在将一个应用部署到多台机器上需要进行大量的环境配置操作。
15+
16+
Docker 主要解决环境配置问题,它是一种虚拟化技术,对进程进行隔离,被隔离的进程独立于宿主操作系统和其它隔离的进程。使用 Docker 可以不修改应用程序代码,不需要开发人员学习特定环境下的技术,就能够将现有的应用程序部署在其他机器中。
17+
18+
参考资料:
19+
20+
- [DOCKER 101: INTRODUCTION TO DOCKER WEBINAR RECAP](https://blog.docker.com/2017/08/docker-101-introduction-docker-webinar-recap/)
21+
- [Docker 入门教程](http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html)
22+
23+
# 二、与虚拟机的比较
24+
25+
虚拟机也是一种虚拟化技术,它与 Docker 最大的区别在于它是通过模拟硬件,并在硬件上安装操作系统来实现。
26+
27+
<div align="center"> <img src="../pics//71f61bc3-582d-4c27-8bdd-dc7fb135bf8f.png"/> </div><br>
28+
29+
<div align="center"> <img src="../pics//7e873b60-44dc-4911-b080-defd5b8f0b49.png"/> </div><br>
30+
31+
## 启动速度
32+
33+
启动虚拟机需要启动虚拟机的操作系统,再启动相应的应用,这个过程会非常慢;
34+
35+
而启动 Docker 相当于启动宿主操作系统上的一个进程。
36+
37+
## 占用资源
38+
39+
虚拟机是一个完整的操作系统,需要占用大量的磁盘空间、内存和 CPU,一台机器只能开启几十个的虚拟机。
40+
41+
而 Docker 只是一个进程,只需要将应用以及相应的组件打包,在运行时占用很少的资源,一台机器可以开启成千上万个 Docker。
42+
43+
参考资料:
44+
45+
- [Docker container vs Virtual machine](http://www.bogotobogo.com/DevOps/Docker/Docker_Container_vs_Virtual_Machine.php)
46+
47+
# 三、优势
48+
49+
除了启动速度快以及占用资源少之外,Docker 具有以下优势:
50+
51+
## 更容易迁移
52+
53+
Docker 可以提供一致性的运行环境,可以在不同的机器上进行迁移,而不用担心环境变化导致无法运行。
54+
55+
## 更容易维护
56+
57+
Docker 使用分层技术和镜像,使得应用可以更容易复用重复部分。复用程度越高,维护工作也越容易。
58+
59+
## 更容易扩展
60+
61+
可以使用基础镜像进一步扩展得到新的镜像,并且官方和开源社区提供了大量的镜像,通过扩展这些镜像得到我们想要的镜像非常容易。
62+
63+
参考资料:
64+
65+
- [为什么要使用 Docker?](https://yeasy.gitbooks.io/docker_practice/introduction/why.html)
66+
67+
# 四、使用场景
68+
69+
## 持续集成
70+
71+
持续集成指的是频繁地将代码集成到主干上,这样能够更快地发现错误。
72+
73+
Docker 具有轻量级以及隔离性的特点,在将代码集成到一个 Docker 中不会对其它 Docker 产生影响。
74+
75+
## 提供可伸缩的云服务
76+
77+
根据应用的负载情况,可以很容易地增加或者减少 Docker。
78+
79+
## 搭建微服务架构
80+
81+
Docker 轻量级的特点使得它很适合用于部署、维护、组合微服务。
82+
83+
参考资料:
84+
85+
- [What is Docker](https://www.docker.com/what-docker)
86+
- [持续集成是什么?](http://www.ruanyifeng.com/blog/2015/09/continuous-integration.html)
87+
88+
# 五、镜像与容器
89+
90+
镜像是一种静态的结构,可以看成面向对象里面的类,而容器是镜像的一个实例。
91+
92+
镜像包含着容器运行时所需要的代码以及其它组件,它是一种分层结构,每一层都是只读的(read-only layers)。构建镜像时,会一层一层构建,前一层是后一层的基础。镜像的这种分层存储结构很适合镜像的复用以及定制。
93+
94+
在构建容器时,通过在镜像的基础上添加一个可写层(writable layer),用来保存着容器运行过程中的修改。
95+
96+
<div align="center"> <img src="../pics//docker-filesystems-busyboxrw.png"/> </div><br>
97+
98+
参考资料:
99+
100+
- [How to Create Docker Container using Dockerfile](https://linoxide.com/linux-how-to/dockerfile-create-docker-container/)
101+
- [理解 Docker(2):Docker 镜像](http://www.cnblogs.com/sammyliu/p/5877964.html)
102+

0 commit comments

Comments
 (0)