Docker的一些基本概念

使用Docker的原因 (面试题)

1.简化程序
2.避免选择恐惧
3.节省开支
4.持续交付和部署
5.更轻松的迁移

应用场景

   Web应用的自动化打包和发布
   自动化测试和持续集成、发布
   在服务型环境中部署和调整数据库或其他的后台应用
   从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境
        PaaS:Platform as a Service,平台即服务
        SaaS:Software as a Service,软件即服务
        IaaS:Infrastructure as a Service,基础设施即服务

特点

   标准化交付
        Docker将应用打包成标准化单元,用于交付、部署
    轻量级
        容器及包含了软件运行所需的所有环境,而且非常轻量级
   高可靠
        容器化的应用程序,可以在任何Linux环境中始终如一的运行
    隔离性
        容器化的应用程序,具备隔离性,这样多团队可以共享同一Linux系统资源

介绍

   开源的应用容器引擎,基于Go语言实现,
          17.03版本后分为CE(社区)和EE版,命令一致
    容器与容器之间相互独立,互不影响
    搭建,发送,运行,
    搭建一次,处处运行

解决的问题

   合作开发的时候,在本机可以运行,在别人的电脑上跑不起来
    服务器自己的程序挂了,结果发现是别人程序出了问题把内存吃完了,自己程序因为内存不够就挂了
    测试阶段能运行但上线出现问题
    公司要弄一个活动,可能会有大量的流量进来,公司需要再多部署几十台服务器
    微服务环境搭建问题
    容器版本管理

Docker和虚拟机的不同点


    1.性能对比 :              Docker                           虚拟机
          特性                容器                                虚拟机
         启动速度           秒级                             分钟级
        存储占用           MB级                              GB级
        性能对比          接近原生级别               理论达不到原生级别
        系统量级         单机可支持上千个            单机支持十几个
        安全能力       依赖宿主系统安全能力        完全隔离
   2. 应用场景不同:
        若需要资源的完全隔离并且不考虑资源的消耗,可以使用虚拟机。若是想隔离进程并且需要运行大量进程实例,应该选择Docker容器
   3. 使用资源方面不同
        Docker容器与主机共享操作系统内核,不同的容器之间可以共享部分系统资源,因此更加轻量级,消耗的资源更少。虚拟机会独占分配给自己的资源,不存在资源共享,各个虚拟机之间近乎完全隔离,更加重量级,也会消耗更多的资源
    4.实现原理不同
        虚拟机是用来进行硬件资源划分的完美解决方案,利用的是硬件虚拟化技术,如此VT-x、AMD-V会通过一个Hypervisor层来实现对资源的彻底隔离。而容器则是操作系统级别的虚拟化,利用的是内核的cgroup和namespace特性,此功能通过软件来实现,仅仅是进程本身就可以实现互相隔离,不需要任何辅助

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值