点击关注公众号,Java干货 及时送达 6240424c142fd5ba9ad3f7fe2524c22d.png

来源:http://dockerone.com/article/126

Flux 7在本文中介绍了常用的8个Docker的真实使用场景,分别是简化配置、代码流水线管理、提高开发效率、隔离应用、整合服务器、调试能力、多租户环境、快速开发。

这几天群里都在讨论Docker的应用场景, 转载这篇文章的初衷是想跟大家有一些交流互动,你是如何使用Docker的?是什么样的应用场景?欢迎回复或投稿给我。

以下为原文:

几周前Flux 7参加了DockerCon,DockerCon是首个以Docker为中心的技术大会。它面向开发者以及对在Docker开放平台上构建、交付、运行分布式应用感兴趣的从业者,不论这些开放平台是运行于自用笔记本上或者是数据中心的虚拟机上。

Flux 7的CEO Aater Suleman和一位客户共同发表了演讲。虽然DockerCon大会十分有趣,但我觉得大会太关注Docker的具体细节,而忽略了Docker的使用场景。以下是作者分享的一些Docker的实际应用案例。

1、简化配置

这是Docker公司宣传的Docker的主要使用场景。虚拟机的最大好处是能在你的硬件设施上运行各种配置不一样的平台(软件、系统),Docker在降低额外开销的情况下提供了同样的功能。

它能让你将运行环境和配置放在代码中然后部署,同一个Docker的配置可以在不同的环境中使用,这样就降低了硬件要求和应用环境之间耦合度。

2、代码流水线管理

前一个场景对于管理代码的流水线起到了很大的帮助。代码从开发者的机器到最终在生产环境上的部署,需要经过很多的中间环境。

而每一个中间环境都有自己微小的差别,Docker给应用提供了一个从开发到上线均一致的环境,让代码的流水线变得简单不少。

3、提高开发效率

这就带来了一些额外的好处:Docker能提升开发者的开发效率。

如果你想看一个详细一点的例子,可以参考Aater在DevOpsDays Austin 2014大会或者是DockerCon上的演讲:

http://www.slideshare.net/Flux7Labs/using-docker-to-improve-web-developer-productivity-dev-opsdays-austin-may-5

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

理想状态中,要达到第一个目标,我们需要将每一个服务都跑在独立的虚拟机中以便监控生产环境中服务的运行状态。然而,我们却不想每次都需要网络连接,每次重新编译的时候远程连接上去特别麻烦。

这就是Docker做的特别好的地方,开发环境的机器通常内存比较小,之前使用虚拟的时候,我们经常需要为开发环境的机器加内存,而现在Docker可以轻易的让几十个服务在Docker中跑起来。

4、隔离 应用

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

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

https://plus.google.com/+RipRowan/posts/eVeouesvaVX

文中将Google和亚马逊做了比较。 使用 Docker 部署 Spring Boot 项目 推荐阅读。

5、整合服务器

正如通过虚拟机来整合多个应用,Docker隔离应用的能力使得Docker可以整合多个服务器以降低成本。

由于没有多个操作系统的内存占用,以及能在多个实例之间共享没有使用的内存,Docker可以比虚拟机提供更好的服务器整合解决方案。

6、调试能力

Docker提供了很多的工具,这些工具不一定只是针对容器,但是却适用于容器。它们提供了很多的功能,包括可以为容器设置检查点、设置版本和查看两个容器之间的差别,这些特性可以帮助调试Bug。

你可以在《Docker拯救世界》的文章:

http://flux7.com/blogs/docker/docker-saves-the-day-at-flux7/

找到这一点的例证。另外,Docker 系列面试题和答案全部整理好了,微信搜索Java技术栈,在后台发送:面试,可以在线阅读。

7、多租户环境

另外一个Docker有意思的使用场景是在多租户的应用中,它可以避免关键应用的重写。最新 Dockder 面试题整理好了,点击Java面试库小程序在线刷题。

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

使用Docker,可以为每一个租户的应用层的多个实例创建隔离的环境,这不仅简单而且成本低廉,当然这一切得益于Docker环境的启动速度和其高效的diff命令。另外,关注公众号Java技术栈,在后台回复:面试,可以获取我整理的 Docker 系列面试题和答案,非常齐全。

更多详情:

http://flux7.com/blogs/docker/using-docker-for-quick-and-easy-multi-tenancy/

8、快速开发

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

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

开工大吉!再发 10,000 个红包封面

2021 年发生的 10 件技术大事!!

23 种设计模式实战(很全)

换掉 Log4j2!tinylog 横空出世

一款基于 Spring Boot 的神仙接私活项目

劲爆!Java 协程要来了

重磅官宣:Redis 对象映射框架来了!!

推荐一款代码神器,代码量至少省一半!

程序员精通各种技术体系,45岁求职难!

Spring Boot 3.0 M1 发布,正式弃用 Java 8

Spring Boot 学习笔记,这个太全了!

关注Java技术栈看更多干货

获取 Spring Boot 实战笔记!

原文链接: https://mp.weixin.qq.com/s?__biz=MzI3ODcxMzQzMw==&mid=2247557542&idx=2&sn=743214905b141dbe28e3919babcb8ac5&chksm=eb516490dc26ed86470325675e4d414036872078fa66c1710e81084d309f2df9644ccbdd02b6&scene=126&&sessionid=0 docker 的8个使用场景 1.简化配置 虚拟机的最大好处是能在你的硬件设施上运行各种配置不一样的平台(软件, 系统), Docker 在降低额外开销的情况下提供了同样的功能. 它能让你将运行环境和配置放在代码汇总然后部署, 同一个 Docker 的配置可以在不同的环境环境中使用, 这样就降低了硬件要求和应用环境之间耦合度. 2.代码流水线管理 代码从开发者的机器到最终在生产环境上的部署, 需要经过很多的中坚环境. 而每一个中间环境都有自己微小的差别, Docker 给应用提供了一个从开发到上线均一致的环境, Docker 是一种流行的容器化技术,可以将应用程序和其依赖项打包到一个可移植的容器中,使得应用程序可以在任何平台上运行。 Docker 应用场景 非常广泛,下面列举了一些常见的 应用场景 :应用程序部署和管理: Docker 可以使应用程序在不同环境之间轻松迁移和部署,并简化应用程序的管理和维护。持续集成和持续交付(CI/CD): Docker 可以与CI/CD工具集成,帮助开发人员更快地构建、测试和部署应用程序。 作为测试工程师,是否经常遇到下面这些问题?   1.和开发共用一套测试环境,测试时不能保证环境的稳定性,有可能在开发环境上稳定,但上线时会容易漏掉一些文件配置等。当然还经常会与开发就bug产生一些纠纷。   2.多个项目部署到同一台服务器,测试时会多了一些不相关的噪音,可能影响到测试的准确性。   3.重新部署一套测试环境,代码是开发写的,环境配置可能是运维搞得,如果测试任务多了,需要部署一套新的测试环境怎么办?我们需要费很大劲去折腾。   4.用selenium做ui自动化测试以及兼容性测试时,需要 您可以将映像托管在 Docker Hub 上,或者使用 Amazon Web Services (AWS) 或 Azure 上的私有存储库。无论您需要什么,您都可以轻松创建自己的独特图像来解决您的问题。 Docker Hub 上提供的公共映 供了一个很好的基础,您可以在此基础上进行构建。您可以使用 Kubernetes (K8s) 或 Docker Swarm 部署更复杂的应用程序,以获得更好的弹性和伸缩性。 Docker 是一个开源平台,可以轻松地为任何应用创建一个轻量级的、 可移植的、自给自足的。 因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享点击关注#互联网架构师公众号,领取架构师全套资料 都在这里0、2T架构师学习资料干货分上一篇:Jenkins+ Docker 一键自动化部署 SpringBoot 项目大家好,我是互联网架构师!◆前言本文总结了 Docker 常见的问题和坑,采用问答的形式,分享给大家◆1.什么是 Docker Docker 是一个开源的应用容器... 来源:http:// docker one.com/article/126 Flux 7在本文中介绍了常用的8个 Docker 的真实使用场景,分别是简化配置、代码流水线管理、提高开发效率、隔离应用、整合服务器、调试能力、多租户环境、快速开发。 这几天群里都在讨论 Docker 应用场景 ,转载这篇文章的初衷是想跟大家有一些交流互动,你是如何使用 Docker 的?是什么样的 应用场景 ?欢迎回复或投稿给我。 以下为原文: 几周前Flux 7参加了 Docker Con, Docker Con是首个以 Docker 为中心的技术大会。它面 场景一:节省项目环境部署时间1.单项目打包每次部署项目到测试、生产等环境,都要部署一大堆依赖的软件、工具,而且部署期间出现问题几率很大,不经意就花费了很长时间。 Docker 主要理念就是环境打包部署,可在任意 Docker Engine运行。前期我们只需要将每个项目环境打包到镜像,push到镜像仓库,当有需要部署这个项目时,直接pull镜像启动容器,这个项目就可以访问了!一次构建多次部署,一劳永逸。2...