(1)为什么使用容器?解决什么问题?

图片[1]-(1)为什么使用容器?解决什么问题?-渗透云记 - 专注于网络安全与技术分享

今天给大家带来一个专题:Docker轻松入门教程篇

前言

Docker,翻译过来就是码头工人

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可抑制的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器完全使用沙盒机制,相互之间不会存在任何接口。几乎没有性能开销,可以很容易的在机器和数据中心运行。最重要的是,他们不依赖于任何语言、框架或者包装系统。

小知识:沙盒也叫沙箱(sandbox)。在计算机领域指一种虚拟技术,而且多用于计算机安全技术。安全软件可以让它在沙盒中运行,如果含有恶意行为,则禁止程序的进一步运行,而这不会对系统造成任何危害。

Docker是dotCloud公司开源的一个基于LXC的高级容器引擎,源码托管在Github上,基于go语言并且遵从Apache2.0协议开源。
GitHub地址:http://github.com/moby/moby

小知识:LXC为Linux Container的简写。Linux Container 容器是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。
LXC主要通过Kernel的namespace实现每个用户实例之间的项目隔离,通过cgroup实现对资源的配额和调度。

docker官网:http://www.docker.com
docker中文库:http://www.docker.org.cn/

Docker容器技术与虚拟机的区别。

相同点:docker和容器技术和虚拟机技术,都是虚拟化技术。

不同点

图片[2]-(1)为什么使用容器?解决什么问题?-渗透云记 - 专注于网络安全与技术分享

docker相较于VM的优点

  • 比VM小、快,Docker容器的尺寸减小相比于整个虚拟机大大简化了分布到云和分发时间的开销。Docker启动一个容器实例时间仅仅需要几秒钟。
  • Docker是一个开放的平台,构建、发布和运行分布式应用程序。
  • 开发人员不需要关系具体是哪个Linux操作系统
  • Google、微软(azure)、亚马逊、IBM等都支持docker。
  • Docker支持Unix/Linux操作系统,也支持Windows和Mac。

Docker局限性:
Docker用于应用程序时是最有用的,但并不包含数据。日志、数据库等通常放在Docker容器外。一个容器的镜像通常都很小,不用和存储大量数据,存储可以通过外部挂载等方式使用,比如:NFS、ipsan、MFS等 ,或者docker命令 ,-v映射磁盘分区。
总之,docker只用于计算,存储交给别人。

总结

docker主要用来解决的问题是:

  • 上线流程繁琐

开发 –>测试 –>申请资源 –>审批 –>部署 –>测试等环节

  • 资源利用率低

普遍服务器利用率低,造成过多浪费

  • 扩容/缩容不及时

业务高峰期扩容流程繁琐,上线不及时

  • 服务器环境臃肿

服务器越来越臃肿,对维护、迁移带来困难

  • 环境不一致性

开发环境,测试环境,生产环境不同,造成运维的困难

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容