【docker专栏1】docker解决的实际问题及应用场景
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解决的实际问题及应用场景的更多相关文章
- FW docker使用问题总结,解决国内不能访问gcr.io的问题
docker使用问题总结 解决国内不能访问gcr.io的问题 国内可以通过https://dashboard.daocloud.io来下载. 比如?gcr.io/google_containers/p ...
- 修改 docker image 安装目录 (解决加载大image时报错:"no space left on device")
修改 docker image 安装目录 (解决加载大image时报错:"no space left on device" ) 基于Ubuntu16.04 docker版本: 17 ...
- service docker start后docker stop/waiting的解决方法
在某次强行对机子断电后,再开机后发现docker没启动 运行service docker start显示docker start/running, process xxxx,之后不一会儿就停止了, 再 ...
- docker实战系列之docker 端口映射错误解决方法
错误: Error response from daemon: Cannot start container web: iptables failed: iptables -t nat -A DOCK ...
- 【Docker】Windows下docker环境搭建及解决使用非官方终端时的连接问题
背景 时常有容器方面的需求,经常构建调试导致测试环境有些混乱,所以想在本地构建一套环境,镜像调试稳定后再放到测试环境中. Windows Docker 安装 安装docker toolbox 博主的电 ...
- 启动docker报Failed to start Docker Application Container Engine.解决
[root@docker ~]# systemctl status docker.service● docker.service - Docker Application Container Engi ...
- Docker安装、命令详情、层级架构、docker服务启动失败解决方法
容器背景: 层级架构: 容器对比传统化虚拟机: 可以把docker理解成是一款自带软件(比如:nignx.tomcat.....)的镜像操作系统(首先是要下载镜像) 以下是Windows环境安装Do ...
- docker磁盘空间不足解决办法
docker磁盘空间不足解决办法 导入docker镜像时,错误提示:磁盘空间不足. 1.查看docker镜像存放目录空间大小 du -hs /var/lib/docker/ 2.停止docker服务. ...
- 【docker专栏2】CentOS操作系统安装DockerCE
目录 一.前置要求 二.更新软件源信息 三.安装 Docker-CE 四.卸载Docker CE 为大家介绍在CentOS操作系统中安装docker的过程,linux其他发行版本安装docker方法可 ...
随机推荐
- Git批量下载MODIS数据
1.download.sh获取 EarthData(需注册账号)中获取MODIS的产品类型.地理范围.时间年份等,进入下载页面Download Status 下载点击得到_download.sh 文件 ...
- 不再空谈AI,从打造一台智能无人机开始
对于大多数无人机爱好者来说,能自己从头开始组装一台无人机,之后加入AI算法,能够航拍,可以目标跟踪,是心中的梦想. 并且,亲自从零开始完成复杂系统,这是掌握核心技术的必经之路. 开课吧特邀北京航空航天 ...
- css修改文子背景浮动
伪元素选择器 """通过css操作文本内容""" 1.修改首个字体样式 p:first-letter{ color: blue; font- ...
- AQS源码三视-JUC系列
AQS源码三视-JUC系列 前两篇文章介绍了AQS的核心同步机制,使用CHL同步队列实现线程等待和唤醒,一个int值记录资源量.为上层各式各样的同步器实现画好了模版,像已经介绍到的ReentrantL ...
- vc2010以及VS2019安装使用教程
一.vc2010的安装教程. ①下载(由于是一个离线文件,可关注后找我) ②下载好并解压安装文件后,打开解压后的文件进行运行安装. 点击"setup"根据提示安装即可. ③安装后点 ...
- 【工具-Nginx】从入门安装到高可用集群搭建
文章已收录至https://lichong.work,转载请注明原文链接. ps:欢迎关注公众号"Fun肆编程"或添加我的私人微信交流经验 一.Nginx安装配置及常用命令 1.环 ...
- 【多线程】守护线程 Daemon
守护线程 Daemon 线程分为用户线程和守护线程 虚拟机必须确保用户线程执行完毕 虚拟机不用等待守护线程执行完毕 如,后台记录操作日志,监控内存,垃圾回收等待.. 代码示例: /** * @Desc ...
- 124_Power Pivot&Power BI DAX优化计算最大连续次数
博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 最大连续次数或者是最大连续子序列问题,在DAX中如何快速计算呢? 思路 1.N-1:按照INDEX错位 2.ST ...
- MongoDB 分片规则
每日一句 生命本身毫无意义,只有死亡才能让你邃晓人性的真谛! 每日一句 Ideal is the beacon. Without ideal, there is no secure direction ...
- v86.01 鸿蒙内核源码分析 (静态分配篇) | 很简单的一位小朋友 | 百篇博客分析 OpenHarmony 源码
本篇关键词:池头.池体.节头.节块 内存管理相关篇为: v31.02 鸿蒙内核源码分析(内存规则) | 内存管理到底在管什么 v32.04 鸿蒙内核源码分析(物理内存) | 真实的可不一定精彩 v33 ...