|
5 | 5 | 说实话关于 Docker 是什么并太好说,下面我通过四点向你说明 Docker 到底是个什么东西。 |
6 | 6 |
|
7 | 7 | - Docker 是世界领先的软件容器平台。 |
8 | | -- Docker 使用 Google 公司推出的 **Go 语言** 进行开发实现,基于 **Linux 内核** 提供的 CGroup 功能和 name space 来实现的,以及 AUFS 类的 **UnionFS** 等技术,**对进程进行封装隔离,属于操作系统层面的虚拟化技术。** 由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。 |
9 | 8 | - Docker 能够自动执行重复性任务,例如搭建和配置开发环境,从而解放开发人员。 |
10 | 9 | - 用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。 |
| 10 | +- Docker 使用 Google 公司推出的 **Go 语言** 进行开发实现,基于 **Linux 内核** 提供的 CGroup 功能和 name space 来实现的,以及 AUFS 类的 **UnionFS** 等技术,**对进程进行封装隔离,属于操作系统层面的虚拟化技术。** 由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。 |
| 11 | + |
| 12 | +官网地址:https://www.docker.com/ 。 |
11 | 13 |
|
12 | 14 |  |
13 | 15 |
|
14 | 16 |
|
15 | 17 |
|
16 | | -### Docker 容器有何特点? |
| 18 | +### 为什么要用 Docker? |
| 19 | + |
| 20 | +Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 |
17 | 21 |
|
18 | | -- **轻量** : 在一台机器上运行的多个 Docker 容器可以共享这台机器的操作系统内核;它们能够迅速启动,只需占用很少的计算和内存资源。镜像是通过文件系统层进行构造的,并共享一些公共文件。这样就能尽量降低磁盘用量,并能更快地下载镜像。 |
19 | | -- **标准** : Docker 容器基于开放式标准,能够在所有主流 Linux 版本、Microsoft Windows 以及包括 VM、裸机服务器和云在内的任何基础设施上运行。 |
20 | | -- **安全** : Docker 赋予应用的隔离性不仅限于彼此隔离,还独立于底层的基础设施。Docker 默认提供最强的隔离,因此应用出现问题,也只是单个容器的问题,而不会波及到整台机器。 |
| 22 | +容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。 |
21 | 23 |
|
22 | | -### 为什么要用 Docker? |
| 24 | +传统的开发流程中,我们的项目通常需要使用 MySQL、Redis、FastDFS 等等环境,这些环境都是需要我们手动去进行下载并配置的,安装配置流程极其复杂,而且不同系统下的操作也不一样。 |
| 25 | + |
| 26 | +Docker 的出现完美地解决了这一问题,我们可以在容器中安装 MySQL、Redis 等软件环境,使得应用和环境架构分开,它的优势在于: |
| 27 | + |
| 28 | +1. 一致的运行环境,能够更轻松地迁移 |
| 29 | +2. 对进程进行封装隔离,容器与容器之间互不影响,更高效地利用系统资源 |
| 30 | +3. 可以通过镜像复制多个一致的容器 |
23 | 31 |
|
24 | | -[《Docker 从入门到实践》](https://yeasy.gitbook.io/docker_practice/introduction/why) 这本开源书籍中已经给出了答案,我这里就不废话了。 |
| 32 | +另外,[《Docker 从入门到实践》](https://yeasy.gitbook.io/docker_practice/introduction/why) 这本开源书籍中也已经给出了使用 Docker 的原因。 |
25 | 33 |
|
26 | 34 |  |
27 | 35 |
|
|
0 commit comments