【每日一记】第三天:docker学习记录
  

静态路由 682

{{ttag.title}}
本帖最后由 静态路由 于 2019-11-3 10:08 编辑

       我是一名netops,工作两三年后发现云计算虚拟化这一块应该是未来的趋势。单纯的传统网络对于个人发展是个瓶颈,还是要会代码会虚拟化网络才能未来走得更远,希望以后能成为netdevops。公司生产环境平时网络都也比较稳定,所以自己学习的时间挺多的。            
      近期我在学习openvswitch,python以及docker和安全相关的知识。路还很长呢,正好论坛有活动,那就记录下学习docker的简单笔记吧 。其实最让我感触最深的就是之前安装openvas的漏扫,去年在另外个公司,我都是手动安装,时间很慢。现在接触docker后,直接run,几秒钟就搭建好了,真的是太太太方便了,只有用过才说好的。现在在看docker相关的书籍,从0开始吧。我还是个入门菜鸟,所以记录的东西还很浅显,如有不对的地方还请各位大神指点。      
      
      先记录下docker的好处和优势吧,以下内容来自《docker入门与实践》这本书,社区小伙伴对docker有兴趣的话也可以看看这本书(公司负责K8S平台的大神给我推荐的)。
    1.Docker容器虚拟化的好处     
       Docker项目的发起人和Docker公司CTO Solomon Hykes曾认为,Docker在正确的地点、正确的时间顺了正确的趋势——如何正确地构建应用。在云时代,开发者创建的应用必须要能很方便地在网络上传播,也就是说应用必须脱离底层物理硬件的限制;同时必须是“任何时间、任何地点”可获取的。      
       因此,开发者需要一种新型的创建分布式应用程序的方式,快速分发和部署,这正是Docker所能够提供的最大优势。举个简单的例子,假设用户试图基于最常见组合来安装构建网站LAMP(Linux+某公司+MySQL+PHP)。按照传统的做法,首先,需要安装某公司、MySQL和PHP以及它们各自运行所依赖的环境;之分别对它们进行配置(包括创建合适的用户、配置参数等);经过大量的操作后,还需要进行功能测试,看是否工作正常;如果不正常,则进行调试追踪,意味着更多的时间代价和不可控的风险。可以想象如果应用数目变多,事情会变得更加难以处理。
       更为可怕的是,一旦需要服务器迁移(例如从亚马逊云迁移到其他云),往往需要对每个应用都进行重新部署和调试。这些琐碎而无趣的“体力活”,极大地降低了工作效率。究其根源,是这些应用直接运行在底层操作系统上,无法保证同一份应用在不同的环境中行为一致。而Docker提供了一种更为聪明的方式,通过容器来打包应用,解耦应用和运行平台。意味着迁移的时候,只需要在新的服务器上启动需要的容器就可以了,无论新旧服务器是否是同一类型的平台。这无疑将节约大量的宝贵时间,并降低部署过程出现问题的风险。         
       2.Docker在开发和运维中的优势
       对开发和运维(DevOps)人员来说,可能最梦寐以求的效果就是一次创建或配置,之后可以在任意地方方、任意时间让应用正常运行。而Docker恰恰是可以实现这一终极目标的“瑞士军刀”。具体说来,Docker在开发和运维过程中,具有如下几个方面的优势:    更快捷的交付和部署。使用Docker,开发人员可以使用镜像来快速构建一套标准的开发环境;开发完成之后,测试和运维人员可以直接使用完全相同环境来部署代码。只要开发测试过的代码,就可以确保在生产环境无缝运行。Docker可以快速创建和删除容器,实现快速迭代,大量节约开发、测试、部署的时间。
      并且,整个过程全程可见,使团队更容易理解应用的创建和工作过程。      更高效的资源利用。Docker容器的运行不需要额外的虚拟化管理程序(Virtual Machine Manager,VMM,以及Hypervisor)支持,它是内核级的虚拟化,可以实现更高的性能,同时对资源的额外需求很低。跟传统虚拟机方式相比,要提高一到两个数量级。      更轻松的迁移和扩展。Docker容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等,同时支持主流的操作系统发行版本。这种兼容性让用户可以在不同平台之间轻松地迁移应用。      
      更简单的更新管理。使用Dockerfile,只需要小小的配置修改,就可以替代以往大量的更新工作。并且所有修改都以增量的方式被分发和更新,从而实现自动化并且高效的容器管理。      
      
      3.Docker与虚拟机比较作为一种轻量级的虚拟化方式,Docker在运行应用上与传统的虚拟机方式相比具有显著优势:Docker容器很快,启动和停止可以在秒级实现,而传统的虚拟机方式需要数分钟。Docker容器对系统资源需求很少,一台主机上可以同时运行数千个Docker容器(在IBM服务器上已经实现了同时运行10K量级的容器实例)。
      
      Docker通过类似Git设计理念的操作来方便用户获取、分发和更新应用镜像,存储复用,增量更新。Docker通过Dockerfile支持灵活的自动化创建和部署机制,提高工作效率,使流程标准化。Docker容器除了运行其中应用外,基本不消耗额外的系统资源,保证应用性能的同时,尽量减小系统开销。传统虚拟机方式运行N个不同的应用就要起N个虚拟机(每个虚拟机需要单独分配独占的内存、磁盘等资源),而Docker只需要启动N个隔离的“很薄的”容器,并将应用放进容器内即可。应用获得的是接近原生的运行性能。      当然,在隔离性方面,传统的虚拟机方式提供的是相对封闭的隔离。但这并不意味着Docker就不安全,Docker利用Linux系统上的多种防护技术实现了严格的隔离可靠性,并且可以整合众多安全工具。从1.3.0版本开始,Docker重点改善了容器的安全控制和镜像的安全机制,极大提高了使用Docker的安全性。在已知的大规模应用中,目前尚未出现值得担忧的安全隐患。      
        明天继续~。

打赏鼓励作者,期待更多好文!

打赏
暂无人打赏

清风慕竹 发表于 2019-11-3 16:22
  
膜拜一下楼主
新手394045 发表于 2020-11-17 14:13
  
厉害了
发表新帖
热门标签
全部标签>
每日一问
技术盲盒
干货满满
技术笔记
新版本体验
产品连连看
2023技术争霸赛专题
技术咨询
GIF动图学习
功能体验
标准化排查
信服课堂视频
自助服务平台操作指引
社区帮助指南
通用技术
秒懂零信任
答题自测
安装部署配置
上网策略
SANGFOR资讯
技术晨报
项目案例
深信服技术支持平台
畅聊IT
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
安全攻防
测试报告
日志审计
问题分析处理
流量管理
每日一记
运维工具
云计算知识
用户认证
原创分享
解决方案
sangfor周刊
VPN 对接
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
排障笔记本
产品预警公告
玩转零信任
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
每周精选

本版版主

461
244
13

发帖

粉丝

关注

本版达人

feeling

本周分享达人

新手29676...

本周提问达人