`
sungyang
  • 浏览: 20089 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

docker使用场景

阅读更多

Docker应用容器相对于 VM 有以下几个优点:

1、启动速度快,容器通常在一秒内可以启动,而 VM 通常要更久

2、资源利用率高,一台普通PC 可以跑上千个容器,你跑上千个 VM 试试

3、性能开销小, VM 通常需要额外的 CPU 和内存来完成 OS 的功能,这一部分占据了额外的资源

因为VM 的 Hypervisor 需要实现对硬件的虚拟化,并且还要搭载自己的操作系统,自然在启动速度和资源利用率以及性能上有比较大的开销。个人体会较深的两处优点:

1、 快速部署,传统的部署模式是:安装(包管理工具或者源码包编译)->配置->运行;Docker的部署模式是:复制->运行。

2、 可以保证线上与测试环境一致,计划以后上线就直接复制测试使用的docker容器)

 

以下内容介绍了常用的8个Docker的真实使用场景,

原文链接: 8 Ways to Use Docker in the Real World

分别是简化配置、代码流水线管理、提高开发效率、隔离应用、整合服务器、调试能力、多租户环境、快速开发。我们一直在谈Docker,Docker怎么使用,在怎么样的场合下使用?也许本文可以帮到你。有需要交流的地方,可以通过评论与我们交流。



几周前我们参加了 DockerCon ,Dockercon是首个以Docker为中心的技术大会。它面向开发者以及对在Docker开放平台上构建、交付、运行分布式应用感兴趣的从业者,不论这些开放平台是运行于自用笔记本上或者是数据中心的虚拟机上。我们参加了这次大会,Flux7是Docker基础的系统集成合作伙伴,同时也是演讲嘉宾。


我们的CEO Aater Suleman和我们的一位客户一同进行了演讲。虽然DockerCon大会十分有趣,但我觉得大会太关注Docker的具体细节,而忽略了Docker的使用场景。所以,在这篇文章中,我想介绍并分享一些Docker的实际应用案例。 

在我们讨论Docker的使用场景之前,先来看看Docker这个工具有什么特别的地方吧。 

Docker提供了轻量级的虚拟化,它几乎没有任何额外开销,这个特性非常酷。 

首先你在享有Docker带来的虚拟化能力的时候无需担心它带来的额外开销。其次,相比于虚拟机,你可以在同一台机器上创建更多数量的容器。 

Docker的另外一个优点是容器的启动与停止都能在几秒中内完成。Docker公司的创始人 Solomon Hykes曾经介绍过Docker在单纯的LXC之上做了哪些 事情,你可以去看看。 

下面是我总结的一些Docker的使用场景,它为你展示了如何借助Docker的优势,在低开销的情况下,打造一个一致性的环境。

 

1. 简化配置

 

这是Docker公司宣传的Docker的主要使用场景。虚拟机的最大好处是能在你的硬件设施上运行各种配置不一样的平台(软件、系统),Docker在降低额外开销的情况下提供了同样的功能。它能让你将运行环境和配置放在代码中然后部署,同一个Docker的配置可以在不同的环境中使用,这样就降低了硬件要求和应用环境之间耦合度。

 

2. 代码流水线(Code Pipeline)管理

 

前一个场景对于管理代码的流水线起到了很大的帮助。代码从开发者的机器到最终在生产环境上的部署,需要经过很多的中间环境。而每一个中间环境都有自己微小的差别,Docker给应用提供了一个从开发到上线均一致的环境,让代码的流水线变得简单不少。

 

3. 提高开发效率

 

这就带来了一些额外的好处:Docker能提升开发者的开发效率。如果你想看一个详细一点的例子,可以参考Aater在 DevOpsDays Austin 2014 大会或者是DockerCon上的演讲。 

不同的开发环境中,我们都想把两件事做好。一是我们想让开发环境尽量贴近生产环境,二是我们想快速搭建开发环境。 

理想状态中,要达到第一个目标,我们需要将每一个服务都跑在独立的虚拟机中以便监控生产环境中服务的运行状态。然而,我们却不想每次都需要网络连接,每次重新编译的时候远程连接上去特别麻烦。这就是Docker做的特别好的地方,开发环境的机器通常内存比较小,之前使用虚拟的时候,我们经常需要为开发环境的机器加内存,而现在Docker可以轻易的让几十个服务在Docker中跑起来。

 

4. 隔离应用

 

有很多种原因会让你选择在一个机器上运行不同的应用,比如之前提到的提高开发效率的场景等。 

我们经常需要考虑两点,一是因为要降低成本而进行服务器整合,二是将一个整体式的应用拆分成松耦合的单个服务(译者注:微服务架构)。如果你想了解为什么松耦合的应用这么重要,请参考Steve Yege的 这篇论文,文中将Google和亚马逊做了比较。

 

5. 整合服务器

 

正如通过虚拟机来整合多个应用,Docker隔离应用的能力使得Docker可以整合多个服务器以降低成本。由于没有多个操作系统的内存占用,以及能在多个实例之间共享没有使用的内存,Docker可以比虚拟机提供更好的服务器整合解决方案。

 

6. 调试能力

 

Docker提供了很多的工具,这些工具不一定只是针对容器,但是却适用于容器。它们提供了很多的功能,包括可以为容器设置检查点、设置版本和查看两个容器之间的差别,这些特性可以帮助调试Bug。你可以在 《Docker拯救世界》的文章中找到这一点的例证。

 

7. 多租户环境

 

另外一个Docker有意思的使用场景是在多租户的应用中,它可以避免关键应用的重写。我们一个特别的关于这个场景的例子是为IoT(译者注:物联网)的应用开发一个快速、易用的多租户环境。这种多租户的基本代码非常复杂,很难处理,重新规划这样一个应用不但消耗时间,也浪费金钱。 

使用Docker,可以为每一个租户的应用层的多个实例创建隔离的环境,这不仅简单而且成本低廉,当然这一切得益于Docker环境的启动速度和其高效的 diff命令。 

你可以在 这里了解关于此场景的更多信息。

 

8. 快速部署

 

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

你可以在数据中心创建销毁资源而无需担心重新启动带来的开销。通常数据中心的资源利用率只有30%,通过使用Docker并进行有效的资源分配可以提高资源的利用率。 

 

4
1
分享到:
评论

相关推荐

    docker技术介绍( 一)

    一、Docker案例介绍 二、Docker概念介绍 三、Docker与虚拟机对比 四、Docker应用场景 五、Docker的实用性 六、Docker基本原理 七、Docker基本命令介绍 八、Docker调度工具介绍 九、Docker最佳实践

    在Docker场景下,如何使用新技术快速实现DevOps?

    在Docker场景下,如何使用新技术快速实现DevOps?

    docker打包示例分享

    docker技术总结,介绍什么是docker,docker的使用场景,docker常见命令,及docker打包示例

    云计算实验报告一(KVM与Docker安装使用)

    2) KVM目前已成为学术界和工业界的主流虚拟机监控器(VMM)之一,已经在越来越多的应用场景中使用。 任务:通过KVM的官方网站https://www.linux-kvm.org/,在Linux系统中下载并安装使用KVM,进一步了解KVM的原理。 ...

    在Docker场景下,如何使用新技术快速实现DevOps.zip

    在Docker场景下,如何使用新技术快速实现DevOps.zip

    在Docker场景下,如何使用新技术快速实现DevOps.pdf

    在Docker场景下,如何使用新技术快速实现DevOps.pdf

    演示如何使用Testinfra和Docker的多场景方法使用Molecule测试Ansible角色的示例项目.zip

    演示如何使用Testinfra和Docker的多场景方法使用Molecule测试Ansible角色的示例项目.zip

    Docker培训视频.rar

    │ 03.Docker应用场景.mp4 │ 04.Linux安装Docker.mp4 │ 05.镜像管理-镜像与容器联系和存储驱动.mp4 │ 06.镜像管理-镜像管理常用命令.mp4 │ 07.容器管理-创建容器常见选项.mp4 │ 08.容器管理-容器管理常用命令....

    Docker与OpenStack应用场景分析.docx

    Docker与OpenStack应用场景分析.docx

    Docker的使用场景以及优缺点.docx

    ——学习参考资料:仅用于个人学习使用! 本代码仅作学习交流,切勿用于商业用途,否则后果自负。若涉及侵权,请联系,会尽快处理! 未进行详尽测试,请自行调试!

    Docker 的安装与使用详解Centos7

    本资源详细介绍了在CentOS 7上安装与使用Docker的步骤和技巧。内容涵盖了Docker的基本概念、安装流程、镜像管理、容器运行和管理等方面的知识,同时也提供了实际应用场景和案例分析,帮助读者更好地理解和应用Docker...

    docker_practice.pdf

    docker 入门 类书籍,从docker的下载安装以及加速,到docker的简单使用,docker的应用场景,系统的介绍了docker,带你入门docker。

    Docker全攻略

    同时讲解了Docker 在实际生产环境中的使用,最后还探讨了Docker 的底层实现技术和基于Docker 的相关开源技术。前4 章为基础内容,供用户理解Docker 和配置Docker 运行环境。第5 章到第9 章为Docker 基本操作,主要...

    docker 离线本地yum源

    centos系统制作离线依赖包,并且使用docker搭建一个离线的yum服务器,用于某些不能连接外网的场景

    Docker入门与应用实战 完整版PDF

    首先,文章介绍Docker的背景和优势,包括容器技术的优点和应用场景。其次,文章详细介绍Docker的安装和基本使用方法,包括镜像、容器和仓库等概念的解释和操作实践。最后,文章列举了一些Docker的应用实例,包括基于...

    docker_practice入门到实战篇

    简介:一、Docker概述; 二、Docker安装使用; 三、Docker的应用场景; 四、案例:安装Docker并实现镜像、容器管理;五、Docker三剑客项目;六、Docker的安全以及底层实现

    Docker容器技术使用指南中文版

    Docker容器技术基础及其应用场景介绍,核心概念与安装配置

    Docker学习文档,全面介绍Docker技术

    该文档首先介绍了Docker的基本概念和原理,包括容器、镜像、仓库等概念,以及Docker的优势和应用场景。接着,详细讲解了Docker的安装和配置方法,包括如何下载和安装Docker引擎、如何创建和管理容器等。 在学习...

    Docker 容器与容器云(高清扫描版)

    从实践者的角度出发,以Docker和Kubernetes为重点,沿着“基本用法介绍”到“核心原理解读”到“高级实践技巧”的思路,一本书讲透当前主流的容器和容器云技术,有助于读者在实际场景中利用Docker容器和容器云解决...

    docker技术介绍

    docker技术介绍

Global site tag (gtag.js) - Google Analytics