Docker可以用来做什么?

转载 2015年09月17日 11:01:16

Docker 是一个便携的应用容器.

Docker 并不在乎你的应用程序是什么、做什么,Docker 提供了一组应用打包、传输和部署的方法,以便你能更好地在容器内运行任何应用。

尝试新软件

对开发者而言,每天会催生出的各式各样的新技术都需要尝试,然而开发者却不太可能为他们一一搭建好环境并进行测试。时间非常宝贵,正是得益于 Docker,让我们有可能在一条或者几条命令内就搭建完环境。Docker 有一个傻瓜化的获取软件的方法,Docker 后台会自动获得环境镜像并且运行环境。

并不仅仅是新技术环境搭建用得到 Docker。如果你想快速在你的笔记本上运行一个 MySQL 数据库,或者一个 Redis 消息队列,那么使用 Docker 便可以非常容易地做到。例如 Docker 只需要一条命令便可以运行 MySQL 数据库:docker run -d -p 3306:3306 tutum/mysql

译者注:虽然使用命令也能非常快地安装 MySQL 数据库,但是当用到最新的技术或者非常复杂的技术时,使用 Docker 便会是个非常好的选择,例如 Gitlab,普通用户大概需要一天的时间去搭建 Gitlab 平台,而 Docker 则只需要一条命令。

进行演示

现在我经常需要在周末用自己开发的成果对客户活着别人做一两个演示。搭建演示环境的过程非常麻烦。现在我发现 Docker 已经成为我演示这些工具的最合理的方式。同时,对于客户来说,我可以直接将 Docker 镜像提供给他们,而不必去做任何环境配置的工作,工作的效果也会和在他们演示中所看到的一模一样,同时不必担心他们的环境配置会导致我们的产品无法运行。

避免“我机器上可以运行”

无论是上一篇介绍的企业部署 Docker 还是本文的个人 Docker 用例,都提到了这个情况。因为环境配置不同,很多人在开发中也会遇到这个情况,甚至开发的软件到了测试人员的机器上便不能运行。但这都不是重点。重点是,如果我们有一个可靠的、可分发的标准开发环境,那么我们的开发将不会像现在这么痛苦。Docker 便可以解决这个问题。Docker 镜像并不会因为环境的变化而不能运行,也不会在不同的电脑上有不同的运行结果。可以给测试人员提交含有应用的 Docker 镜像,这样便不再会发生“在我机器上是可以运行的”这种事情,很大程度上减轻了开发人员测试人员互相检查机器环境设置带来的时间成本。

另一个 Docker 可以发挥用处的地方是培训班。除了 Docker 容器的隔离性之外,更能体会到 Docker 优势的地方在于环境搭建。培训班的新手每个人都要在环境搭建上花费很多时间,但是如果在这里应用到 Docker 的话,那么我们只需要把标准的运行环境镜像分发下去,然后就可以开始上课了。使用 Docker 和使用虚拟机一样简单,但是 Docker 要更方便、更轻量级。同时,我们也可以告诉学员:“在培训的同时,我们还将学到当下最流行的技术——Docker”,这种双赢的结局,何乐而不为呢。

更好地利用资源

虚拟机的粒度是“虚拟出的机器”,而 Docker 的粒度则是“被限制的应用”,相比较而言 Docker 的内存占用更少,更加轻量级。

对我来说这是 Docker 的一个优势:因为我经常在自己电脑中运行多个 Docker 应用,使用 Docker 比使用虚拟机更加简单,方便,粒度更细,也能持续地跟踪容器状态。

为微服务定制

如果你一直在关注科技新闻的话,那么你应该听说过“微服务(Microservices)”的概念。Docker 可以很好地和微服务结合起来。从概念上来说,一个微服务便是一个提供一整套应用程序的部分功能,Docker 便可以在开发、测试和部署过程中一直充当微服务的容器。甚至生产环境也可以在 Docker 中部署微服务。

在云服务提供商之间移植

大多数的云主机提供商已经全面支持 Docker。对于开发人员来说,这表示你可以很方便地切换云服务提供商,当然也可以很方便地将你本地的开发环境移动到云主机上,不需要本地上配置一次运行环境、在云主机上还配置一次运行环境。全面部署 Docker (Docker here and Docker there) 作为标准运行环境可以极大地减轻应用上线时的工作量和产生 BUG。

自己学Docker:3.安装Docker之后可以先做什么

在上一章,也就是我前几天,我了解了Docker安装和一些基本概念,如容器和镜像等。那么,现在Docker安装好了,剩下的可以做些什么呢?启动一个Docker容器首先,查看下本地有那些镜像。sudo d...
  • Mungo
  • Mungo
  • 2016-04-21 21:11:49
  • 5245

我们究竟要用Docker做什么

转自:http://www.tuicool.com/articles/YZZVfu 1.摘要 前一阵微博风风火火的用大规模docker集群扛过了春节峰值。最近跟不少人聊起...
  • ZHOUBANGDING
  • ZHOUBANGDING
  • 2017-02-07 23:38:19
  • 2339

Docker 可以帮我做什么

【编者的话】有些开发者可能还是不明白Docker 对自己到底有多大的用处,因此翻译Docker 个人用例这篇文章中来介绍 Docker 在普通开发者开发过程中的用例。   Docker 如今赢得了许...
  • afandaafandaafanda
  • afandaafandaafanda
  • 2015-05-18 12:33:17
  • 600

Docker到底是什么?为什么它这么火!

如果你是数据中心或云计算IT圈子的人,这一年多来应该一直在听到普通的容器、尤其是Docker,关于它们的新闻从未间断过。Docker1.0在今年6月发布后,声势更是达到了前所未有的程度。   ...
  • truelove12358
  • truelove12358
  • 2017-02-08 10:29:53
  • 864

Docker是什么?可以用Docker做什么?

作者:刘允鹏 链接:https://www.zhihu.com/question/28300645/answer/67707287 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商...
  • qq_37788081
  • qq_37788081
  • 2018-01-12 14:58:19
  • 91

Docker是用来干什么的?

Docker免环境配置安装神器。 快速分发你的软件以及包含的配置。
  • u013814964
  • u013814964
  • 2016-04-28 14:41:58
  • 4195

Docker学习总结(5)——超实用Docker入门学习教程

Docker是什么 Docker是一种容器技术,它可以将应用和环境等进行打包,形成一个独立的,类似于iOS的APP形式的“应用”,这个应用可以直接被分发到任意一个支持Docker的环...
  • u012562943
  • u012562943
  • 2016-05-31 09:50:40
  • 9833

使用Docker开发你的PHP应用

1.什么是Docker? Docker是一个开源的项目,它是一个在Linux的虚拟机上通过提供抽象化和自动化附加层并且以此来在软件容器内自动部署应用环境的工具。Docker同时还可以打包应用,并...
  • u012543061
  • u012543061
  • 2016-07-25 08:43:55
  • 2527

Javascript可以用来做什么

没有一个语言比Javascript更让我钟爱的了,因为它简单易学却用途多多,自由自然却不散漫。也因为简单易学。所以会写Javascript 人很多,但你要是问会用javascript做什么,普遍的回答...
  • zhang527
  • zhang527
  • 2013-02-22 10:53:55
  • 1806

ajax开门篇------ajax是什么?能做什么?怎么做?

ajax是什么? 1,AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML). 2,是七种语言的综合,它包含七种语言.(javascript...
  • jankin6
  • jankin6
  • 2017-05-25 13:55:56
  • 260
收藏助手
不良信息举报
您举报文章:Docker可以用来做什么?
举报原因:
原因补充:

(最多只允许输入30个字)