美文网首页
【docker专栏1】docker解决的实际问题及应用场景

【docker专栏1】docker解决的实际问题及应用场景

作者: 字母哥课堂 | 来源:发表于2022-07-07 08:58 被阅读0次

Docker是一个开源的容器引擎,它轻巧,且易移植,“build once, configure once and run anywhere”。使用go语言开发,并遵从apache2.0协议。

一、 传统软件行业中存在的问题

  • 开发、生产、测试环境不一致,开发环境下可用的服务挪到生产上不可用。
  • 不同环境之间迁移成本太高,没有统一的软件部署封装标准及封装环境。
  • 对于分布式软件持续集成(测试、打包、发布、部署、管理)周期很长,难以自动化、工程化。
  • 面临瞬时用户流量增大的场景,很难实现分布式应用服务实例的快速部署。

二、集装箱与docker之间的关系

通常称docker为软件行业的集装箱技术,那么docker和集装箱有什么相似之处呢?

传统行业集装箱 软件行业Docker
装载实体货物 装载并运行应用服务
具有统一的规格,便于搬运 封装环境的统一性(JDK、环境变量都可以封装在一个docker镜像里面),可以遵从一定规则反复的、快速的自动化安装部署
环境隔离,每个公司的集装箱货物与其他的公司的货物不混在一起。 在linux中采用namespace技术进行资源隔离,cgroups技术进行资源限制。容器之间互不影响。
资源共享,一个运送集装箱的船舶,搭载多个集装箱 一台服务器可以启动多个docker容器,达到共享服务器资源的目的
具备完整的物流仓储系统 docker镜像仓库中的镜像,可以导出导入,上传下载

可以参考我的另一篇文章《【大话云原生】煮饺子与docker之间的关系》,我觉得这篇文章对于您理解docker将有非常大的帮助。

三、docker与虚拟机的区别

docker和虚拟机在某些应用场景下比较像,但是docker不是虚拟机。

docker是一种虚拟化容器技术,他和虚拟机最根本的区别是:docker容器和宿主机共用linux操作系统内核,不会在宿主机上再次安装操作系统docker容器运行状态下的本质是宿主机上的进程,通过namespace资源隔离,cgroups资源限制,使它看上去像是一个独立的虚拟机.

对比项 虚拟机 docker容器
启动速度 龟速(本质是启动操作系统) 秒速(本质是启动一个进程)
镜像大小 以Ubuntu为例,1G以上 Ubuntu:195M
应用部署集成 通常是手动安装 下载镜像+启动镜像(自动)
内存访问效率 慢,先访问虚拟地址 基本等同于宿主机
CPU损耗 虚拟操作系统造成的损耗较大 接近于0

四、docker的应用场景

  • docker镜像一旦构建,就已经一次性完成了应用自动打包、集成。docker镜像可以进行版本管理、复制、分享、修改,就像管理代码一样。
  • 通过统一的docker环境封装(比如镜像中封装了同一版本的JDK、同样的环境变量等等),保证应用服务运行环境的一致性。避免出现在测试环境上好用,挪到生产环境下运行失败的问题。
  • docker可以做到秒级、甚至毫秒级的启动时间。大大的节约了开发、测试、部署的时间。
  • 因为镜像可下载、可复用,docker容器可快速启动等特性,结合容器编排服务(k8s)可以实现大型分布式部署的弹性伸缩,快速扩展。

五、总结

如果初学者对于本节内容理解起来有困难,也不要气馁。其实docker的学习难度很低,随着学习的深入,上面的这些概念很容易理解的。
觉得对您有帮助的话,帮我点赞、分享!您的支持是我不竭的创作动力!。更多精彩内容公众号:字母哥杂谈。字母哥博客:zimug.com

相关文章

  • 【docker专栏1】docker解决的实际问题及应用场景

    Docker是一个开源的容器引擎,它轻巧,且易移植,“build once, configure once and...

  • Docker培训

    学习参考资料 一、Docker简介 1、简介 2、Docker的应用场景 3、Docker 的优点 3、docke...

  • docker

    Docker 面试问答 1. 什么是 Docker 容器? Docker 容器 在应用程序层创建抽象并将应用程序及...

  • Docker学习(14) 使用Docker Stack部署应用(

    Docker学习(14) 使用Docker Stack部署应用(上) Docker Stack:可以解决大规模情境...

  • Docker入门

    Docker主要解决的问题主要解决软件环境迁移的问题 Docker概念与应用商店对比开箱即用 为什么docker更...

  • Module-Docker使用手册

    LinuxDocker 使用手册 [toc] Docker 介绍 Docker 的应用场景 Web 应用的自动化打...

  • Docker小技巧

    Docker使用过程中的一些小技巧 测试场景:ubuntu云服务器 Tip1 手动修改Docker源 应用场景:需...

  • Docker之网络问题

    Docker网络解决方案 - imi00的专栏 - CSDN博客

  • docker从安装到部署、编排微服务

    Docker简介: Docker是一个开源的容器引擎,它有助于更快地交付应用。Docker可将应用程序及基础设施层...

  • docker swarm 安装

    1. docker swarm 简介 Docker Swarm是Docker自己的Docker容器本地集群解决方案...

网友评论

      本文标题:【docker专栏1】docker解决的实际问题及应用场景

      本文链接:https://www.haomeiwen.com/subject/yvwmbrtx.html