1、配置简化

这是 Docker 的主要使用场景。将应用的所有配置工作写入 Dockerfile 中,创建好镜像, 以后就可以无限次使用这个镜像进行应用部署了。这大大简化了应用的部署,不需要为每次 部署都进行繁琐的配置工作,实现了一次打包,多次部署。这大大加快了应用的开发效率, 使得程序员可以快速搭建起开发测试环境,不用关注繁琐的配置工作,而是将所有精力都尽 可能用到开发工作中去。

 

2、代码流水线管理 代码从开发环境到测试环境再到生产环境,需要经过很多次中间环节,Docker  给应用

提供了一个从开发到上线均一致的环境,开发测试人员均只需关注应用的代码,使得代码的 流水线变得非常简单,这样应用才能持续集成和发布。

 

3、快速部署

在虚拟机之前,引入新的硬件资源需要消耗几天的时间。Docker 的虚拟化技术将这个 时间降到了几分钟,Docker 只是创建一个容器进程而无需启动操作系统,这个过程只需要 秒级的时间。

 

4、应用隔离

资源隔离对于提供共享 hosting 服务的公司是个强需求。 如果使用 VM,虽然隔离性非 常彻底,但部署密度相对较低,会造成成本增加。

Docker 容器充分利用 linux 内核的 namespace 提供资源隔离功能。结合 cgroups,可以方便 的设置每个容器的资源配额。既能满足资源隔离的需求,又能方便的为不同级别的用户设置 不同级别的配额限制。

 

5、服务器资源整合


正如通过 VM 来整合多个应用,Docker 隔离应用的能力使得 Docker 同样可以整合服务 器资作系占用在多使用 Docker 可以比 VM 提供更好的服务器整合解决方案。

通常数据中心的资源利用率只有 30%,通过使用 Docker 并进行有效的资源分配可以提高资 源的利用率。

 

6、多版本混合部署 个应多个在企

业内部非常常见。但一台服务器上部署同一个软件的多个版本,文件路径、端口等资源往往 会发生冲突,造成多个版本无法共存的问题。

如果用 docker,这个问题将非常简单。由于每个容器都有自己独立的文件系统,所以根本不 存在文件路径冲突的问题; 对于端口冲突问题,只需要在启动容器时指定不同的端口映射即 可解决问题。

 

7、版本升级回滚 一次升级,往往不仅仅是应用软件本身的升级,通过还会包含依赖项的升级。 但新旧

软件以在一般困难。 如果使用 docker,我们只需要每次应用软件升级时制作一个新的 docker 镜像,升级时先停 掉旧的容器, 然后把新的容器启动。 需要回滚时,把新的容器停掉,旧的启动即可完成回 滚,整个过程各在秒级完成,非常方便。

 

8、内部开发环境 公司发人虚拟

开发测试环境。开发测试环境一般负载较低,大量的系统资源都被浪费在虚拟机本身的进程 上了。

Docker 有任何 CPU 和内很适合用发测 而且由于 Docker 镜像可以很方便的在公司内部共享,这对开发环境的规范性也有极大的帮 助。

 

9PaaS

使用 Docker 搭建大规模集群,提供 PaaS。这一应用是最有前景的一个了,目前已有很 多创业公司在使用 Docker  PaaS 了,例如云雀云平台。用户只需提交代码,所有运维工作 均由服务公司来做。而且对用户来说,整个应用部署上线是一键式的,非常方便。

 

10、云桌面

 

spacer.gif方案比于化的量级行速提升。不过该方案仍处于实验阶段,不知是否可行。可以参考一下 Docker-desktop 方案。