八个Docker的真实应用场景

1.简化配置

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

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

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

3. 提高开发效率

这就带来了一些额外的好处:Docker能提升开发者的开发效率。不同的开发环境中,我们都想把两件事做好。一是我们想让开发环境尽量贴近生产环境,二是我们想快速搭建开发环境。

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

4. 隔离应用

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

我们经常需要考虑两点,一是因为要降低成本而进行服务器整合,二是将一个整体式的应用拆分成松耦合的单个服务。

5. 整合服务器

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

6. 调试能力

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

7. 多租户环境

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

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

8. 快速部署

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

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

时间: 2024-08-29 19:28:18

八个Docker的真实应用场景的相关文章

Docker学习总结(11)——八个Docker的真实应用场景

[编者的话]Flux 7介绍了常用的8个Docker的真实使用场景,分别是简化配置.代码流水线管理.提高开发效率.隔离应用.整合服务器.调试能力.多租户环境.快速部署.我们一直在谈Docker,Docker怎么使用,在怎么样的场合下使用?也许本文可以帮到你.有需要交流的地方,可以通过评论与我们交流. 几周前我们参加了DockerCon ,Dockercon是首个以Docker为中心的技术大会.它面向开发者以及对在Docker开放平台上构建.交付.运行分布式应用感兴趣的从业者,不论这些开放平台是运

docker数据卷应用场景

docker数据卷应用场景 在多个容器之间共享数据,多个容器可以同时以只读或者读写的方式挂载统一个数据卷,从而共享数据卷中的数据 当宿主机不能保证一定存在某一个目录或一些固定的文件路径时,使用数据卷可以规避这种限制带来的问题 当想把容器中的数据存储在宿主机之外的地方时,比如远程主机上和云存储上 当你需要把容器数据在不同宿主机之间备份.恢复或迁移时,数据卷是很好的选择 数据覆盖问题 如果挂载一个空的数据卷到容器中的一个非空目录中,那么这个目录下的文件会被复制到数据卷中 如果挂载一个非空的数据卷到容

Docker技术这些应用场景,你知道吗?

场景一:节省项目环境部署时间 1.单项目打包 每次部署项目到测试.生产等环境,都要部署一大堆依赖的软件.工具,而且部署期间出现问题几率很大,不经意就花费了很长时间. Docker主要理念就是环境打包部署,可在任意Docker Engine运行.前期我们只需要将每个项目环境打包到镜像,push到镜像仓库,当有需要部署这个项目时,直接pull镜像启动容器,这个项目就可以访问了!一次构建多次部署,一劳永逸. 2.整套项目打包 公司有一项这样的业务:有一个产品可以整套部署到客户那里,以往都是派一名实施工

docker 实践八:docker swarm

介绍了 docker 三剑客中的 docker-machine 和 docker-compose 之后,就剩下一个 docker swarm 了.那本篇的主角就是它了. 注:环境为 CentOS7,docker 19.03. docker-compose 为用户提供单节点中多容器的创建,docker-machine 让用户管理不同的 docker 环境.而 docker swarm 则帮助用户实现 docker 的集群管理.从单机走向集群. Swarm 的简介 Swarm 的前身是Beam项目和

(八)Docker网络跨主机通讯vxlan和vlan

基于OpenvSwitch实现跨主机通信: 环境描述: 计算机名称 IP Docker01 eth0:192.168.124.150/24 eth1:172.16.100.20/24 docker0:172.17.0.1/24(默认) Docker02 eth0:192.168.124.15124 eth1:172.16.100.30/24 docker0:172.17.0.1/24(默认) dockerothsrv eth0:192.168.124.152/24 eth1:172.16.100

八种Docker容器开发模式---The Shared Volume Dev Container

The Shared Volume Dev Container 我所有的dev容器与宿主机分享至少一个volume: / home,这是为了便于开发.对于许多app,在开发模式中,使用基于file-system-change的code-reloader运行,这样一来容器内封装了OS / distro-level的依赖,并在初始环境中帮助验证app-as-bundled工作,而不需要让我每次在代码改变时重启/重建VM. 至于其他,我只需要重启(而不是重建)容器来应对代码的更改. 对于test/st

构建之法第八周感想 典型用户和场景

在产品的开发过程中,经常需要描述一组典型的用户.典型用户不再是一个抽象的概念,而应该是一个活生生的人物.一个典型用户往往描述了一组用户的典型技巧.能力.需要.想法.工作习惯和工作环境.典型用户的模板可以包括名字.年龄和收入.典型场景.工作情况.定义完典型用户后,不能开始写程序,因为典型用户只是设想,我们还要和典型用户的代表交流,理解用户,理解他们的工作方式和需要,然后再修改,细化典型用户.当完善了典型用户的定义后,就要进入创立场景阶段,创立场景就是我们深入理解用户需求的过程.对于每一个目标,列出

docker的典型应用场景

docker是lxc的增强版,不是替代版,其底层也是用lxc实现的 1. 多版本混合部署 一台服务器上部署多个应用或者一个应用的多个版本非常常见. 文件路径,配置信息,端口冲突不可避免 docker的每个容器有自己的文件系统,并通过端口映射解决端口冲突的问题 2.升级回滚 升级通常还有依赖项的版本变更,如果升级失败,会回滚, docker将新版本放到新容器,就版本的旧容器停掉,直接上新容器,秒级操作完成升级,如果有问题,再秒级操作将版本回滚 3.多租户资源隔离 不同的租户对资源的需求不一样,目前

Docker入门与应用系列(八)Docker图形界面管理之Shipyard

Shipyard基于Docker API实现的容器图形管理系统,支持container.images.engine.cluster等功能,可满足我们基本的容器部署需求可堆栈的Docker管理基于Docker Swarm,Shipyard可让您管理Docker资源,包括容器,图像,私人注册表等等.Shipyard与其他管理应用程序的不同之处在于它提高了可组合性,并与Docker Remote API 100%兼容. Shipyard管理container.images.engine.cluste范