Docker 这九个不一样的应用场景,你都用到了吗?

Docker 是一个开源的容器引擎,能够轻松的为任何应用建立一个轻量级的、可移植的、自给自足的容器。开发者和系统管理员在笔记本上编译测试经过的容器能够批量地在生产环境中部署,包括 VMs(虚拟机)、bare metal、OpenStack 集群、云端、数据中心和其余的基础应用平台。容器是彻底使用沙箱机制,相互之间不会有任何接口。本文将介绍 Docker 的九种用法,它们可提高你的生产力。git

1. 本地依赖(Local Dependency)

你须要在本地系统快速尝试 Magento,或者为一个项目使用 MySQL?仍是但愿尝试大部分开源项目?那就使用 Docker 吧,它将帮你节省大量时间。Docker 能提高开发者的开发效率,让咱们快速搭建开发环境。github

开发环境的机器一般内存比较小,此前使用虚拟的时候,常常须要为开发环境的机器加内存,而经过 Docker 能够轻易的让几十个服务在 Docker 中跑起来。golang

2. 搭建环境(Build Environment)

若是你但愿构建源码,但发现没有准备好合适的环境。那么使用 Docker 是一个值得考虑的方案。毕竟若是使用传统的方法一个一个地安装软件,一大堆软件安装下来确实十分费时间,使用容器技术省时省力,何乐而不为?docker

它能让你将运行环境和配置放在代码中而后部署,同一个 Docker 的配置能够在不一样的环境中使用,这样就下降了硬件要求和应用环境之间耦合度。这里有一个值得一看的例子: docker golang buildershell

3. 微服务(Microservices)

你在使用微服务吗?微服务架构 —— 将一个总体式的应用拆分红松耦合的单个服务。架构

那不妨考虑一下 Docker,你能够将每一个服务打包为一个 docker 镜像并使用 docker-compose 来模拟生产环境(checkout docker networks)。最开始实践的时候可能会比较费时费力,但长远地来看,最终将产生巨大的生产力。app

4. 自动测试(Automated testing)

试想这样一个问题,如何编写自动化的集成测试用例,这些测试用例无需花很长时间来开始运行,使用者也可轻松管理。负载均衡

这里不是指在 Docker 中运行测试用例,而是将测试用例与镜像紧密运行在一块儿。当你针对一个 docker 镜像编写测试用例时会有一个很大的优点。下面简单介绍一下个人测试流程:运行两个 docker 镜像(app + db),在 MySQL 启动时加载数据,并在 app docker 上使用 API。可查看此脚本以获取快速的示例。dom

5. 部署过程(Deployment process)

你可使用 docker 镜像进行自我部署。许多主流的主机提供商都支持托管 docker,若是你拥有一个具备 shell 访问权限的专用节点/vm,那么事情将变得更容易。只须要设置好 docker,并在你想要的端口上运行你的镜像便可。ide

6. 持续部署(Continuous Deployment)

都说 Docker 天生适合持续集成/持续部署,在部署中使用 Docker,持续部署将变得很是简单,并会在进入新的镜像后从新开始。

关于这个部分的自动化工做,如今已经有许多方案以供选择,Kubernetes 就是一个耳熟能详的名字。Kubernetes是容器集群管理系统,是一个开源的平台,能够实现容器集群的自动化部署、自动扩缩容、维护等功能。

7. 多租户环境(Multi-tenancy)

Docker 有意思的一个使用场景是在多租户的应用中,它能够避免关键应用的重写。若是你将应用程序服务公开给多个租户(租户指一组用户,例如组织),使用单租户方案设计的应用程序若是用上了 sub-domain + docker 能够快速得到提供多租户的服务。

关于这个场景的一个例子是为物联网的应用开发一个快速、易用的多租户环境。这种多租户的基本代码很是复杂,很难处理,从新规划这样一个应用不但消耗时间,也浪费金钱。使用 Docker,能够为每个租户的应用层的多个实例建立隔离的环境,这不只简单并且成本低廉,固然这一切得益于 Docker 环境的启动速度和其高效的 diff 命令。

8. 来自一台机器的多个 APP(Multiple apps from one machine)

这与上面提到的微服务有些联系,但即便你没有使用微服务,只是提供服务,Docker 仍能够很好地管理单个机器上的全部服务。你应该使用文件夹挂载来为每一个基于数据的 docker 镜像保留数据。

9. 扩容 QPS(Scaling QPS)

Docker 经过建立另外一个容器来帮助你轻松地进行水平扩展。若是遇到巨大的高峰流量,Docker 能够帮助你解决问题 —— 只需添加更多的机器并增长负载均衡器背后运行的容器数量。

还有文章没提到的关于 Docker 的应用场景?欢迎你和你们一块儿分享~

参考:https://medium.com/@012parth/docker-for-10-things-adaca4cca7f8

相关文章
相关标签/搜索