**Docker是什么?**(官方定义)Docker是一个开源的引擎,可以轻松地为任何应用
创建一个轻量级的、可移植的、自给自足的容器,开发者在笔记本上编译测试通过
的容器,可以批量地在生产环境中部署,包括VMS(虚拟机)、bare metal
、OpenStack集群和其它应用平台。
**Docker通常应用到以下几种场景:**
1.web应用的自动化打包和发布;
2.自动化测试和集成、发布;
3.在服务型环境中部署和调整数据库或其它的后台应用;
4.从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建PaaS环境;
Docker是基础设施的新成员,近些年,随着Docker技术在DevOps和基础设施领域
中飞速发展,各大大小小的IT企业如Google、亚马逊、微软、IBM等,都开始注重
Docker容器在生产环境中的使用,转换其应用,使之运行于容器内,以此实现面向
服务架构(SOA)和微服务。毫无疑问,容器已经成为应用程序打包和基础设施自
动化的重要组成部分。目前关于Docker在生产环境中的相关资料很少,本系统教程
是从本人相关项目实战中整理出来,主要结合Docker的使用场景、网络和存储驱动
如何选型、资源如何限制、镜像仓库的权限控制、容器健康的监控及安全隐患、容
器的集群等等场景给出的解决方案,希望能给大家一些帮助。
**为什么要使用Docker?**
Docker所使用的底层容器技术已经存在很多年了,甚至早于dotCloud这家平台即
服务(PaaS)创业公司。在dotCloud之前,许多知名公司,如HeroKu和Iron.io
已经在生产环境中运行大型容器集群,以获取额外的超越虚拟机的性能优势。与
虚拟机相比,在容器中运行软件赋予了这些公司秒级而非分钟级的实例启动与停止
的能力,同时能使用更少的机器运行更多的实例。
Docker之所以能取得这么大的成功,主要取决于它的易用性!Docker创造了一种
统一的方式,通过简便的命令行和HTTP API工具来打包、运行和维护容器,极大地
简化并降低了将应用程序及其运行时环境打包成一个自包含镜像的入门门槛,使之
变得可行并有趣。
Docker提供了一种统一的手段,将应用程序及运行时环境打包到一个简单的Docker
file里,这从根本上改变了开发人员与DevOps团队间的交互界面,从而极大地简化了
开发团队与DevOps之间的沟通需求与责任边界。
在Docker出现之前,各个公司的开发与运维团队之间经常会爆发史诗般的战争,开发
团队想快速前进,整合最新版本的软件及依赖,以及持续部署,而运维团队则保持以
稳定为已任,他们负责把关可以运行于生产环境中的内容。如果运维团队对新的依赖
或需求感到不适,他们通常会站在保守的立场上,要求开发人员使用旧版本软件以确
保糟糕的代码不会搞垮整台服务器。
Docker一下子改变了DevOps的决策思维,从"基本上说不"变成了"好的,只要运行在
Docker中就可以",因为糟糕的代码只会让容器崩溃,而不会影响到同一台服务器上的
其他服务。在这种范型中,DevOps有效地负责为开发提供PaaS,而开发人员负责保
证其代码能正常运行。
Docker在生产环境中的应用--开篇
原创
©著作权归作者所有:来自51CTO博客作者触龙的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:我的友情链接
下一篇:PHP7中的嵌套类或内部类
![](https://ucenter.51cto.com/images/noavatar_middle.gif)
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
docker swarm 生产环境 docker生产环境mysql
1、环境说明 本次配置是在AlmaLinux下,mysql 采用 5.7.13,Docker 版本为3.3.1。主要目的是要实现在一台主机上两个Mysql数据库的主从复制,进而为SpringBoot读写分离作开发前准备。2、文件挂载 &
docker swarm 生产环境 mysql docker 数据库 database