这些必备的Docker基础知识,你还不知道吗?带你十分钟掌握
Docker是时下热门的容器技术 , 相信作为一名开发人员 , 你一定听说过或者使用过 , 很多人会把Docker理解为一个轻量级虚拟机 , 但其实Docker与虚拟机(VM)是两种不同的计算机虚拟化技术 , 也有很多人会觉得 , 有了虚拟机 , 那为什么还要使用Docker呢?
带着心里的一点点疑问 , 让我们一起来学习Docker吧 。
没有虚拟化技术的原始年代我们仔细想想 , 在没有计算虚拟化技术的“远古”年代 , 如果我们要部署一个应用程序(Application) , 一般的步骤是怎么样的?
第一步肯定是先要准备一台物理服务器 , 然后在物理服务器上安装一个操作系统(Operating System) , 有了操作系统之后 , 便在操作系统上安装运行我们的应用程序 , 这个过程可以用下面的图来表示:
文章插图
物理服务器部署应用示意图
那么 , 这种方式有什么问题呢?其实 , 在物理机上部署应用有以下几个缺点:
- 部署非常慢:因为我们得先准备硬件服务器 , 接着还要安装操作系统 , 然后再部署应用程序 , 而且应用程序还有很多的依赖软件 , 所以这个过程是比较慢的 。
- 成本非常高:主要是物理器成本太高 , 即使是部署一个简单的应用 , 也需要一台服务器 。
- 资源浪费:如果应用太简单 , 也容易浪费硬件资源 , 比如CPU和内存
- 迁移和扩展太慢:如果需要迁移应用 , 或者扩展应用 , 都要再准备其他的物理服务器 , 过程很麻烦 , 也很慢 。
使用虚拟机部署应用程序的年代什么是虚拟化技术谈到计算机的虚拟化技术 , 我们直接想到的便是虚拟机 , 虚拟机允许我们在一台物理计算机模拟出多台机器,简单地理解 , 虚拟化技术就是在一台物理计算机上 , 通过中间虚拟软件层Hypervisor隔离CPU、内存等硬件资源 , 虚拟出多台虚拟服务器 , 这样做的话 , 一台物理服务器便可以安装多个应用程序 , 达到资源利用的最大化 , 而且多个应用之间相互隔离 , 如下图所示:
文章插图
虚拟机上部署应用示意图
虚拟机的优点
- 可以把资源分配到不同的虚拟机 , 达到硬件资源的最大化利用
- 与直接在物理机上部署应用 , 虚拟机更容易扩展应用 。
- 云服务:通过虚拟机虚拟出不同的物理资源 , 可以快速搭建云服务 。
Docker是什么?相对于虚拟机的笨重 , Docker则更显得轻量化 , 因此不会占用太多的系统资源 。
Docker是使用时下很火的Golang语言进行开发的 , 其技术核心是Linux内核的Cgroup,Namespace和AUFS类的Union FS等技术 , 这些技术都是Linux内核中早已存在很多年的技术 , 所以严格来说Docker并不是一个完全创新的技术 , Docker通过这些底层的Linux技术 , 对Linux进程进行封装隔离 , 而被隔离的进程也被称为容器 , 完全独立于宿主机的进程 。
所以Docker是容器技术的一种实现 , 也是操作系统层面的一种虚拟化 , 与虚拟机通过一套硬件再安装操作系统完全不同 。
文章插图
docker容器与系统关系示意图
Docker与虚拟机之间的比较Docker是在操作系统进程层面的隔离 , 而虚拟机是在物理资源层面的隔离 , 两者完全不同 , 另外 , 我们也可以通过下面的一个比较 , 了解两者的根本性差异 。
文章插图
容器与虚拟机的比较【摘自《Docker-从入门到实践》】
从上面的容器与虚拟机的对比中 , 我们明白了容器技术的优势 。
容器解决了开发与生产环境的问题开发环境与生产环境折射的是开发人员与运维人员之间的矛盾 , 也许我们常常会听到开发人员对运维人员说的这样一句话:“在我的电脑运行没问题 , 怎么到了你那里就出问题了 , 肯定是你的问题” , 而运维人员则认为是开发人员的问题 。
开发人员需要在本机安装各种各样的测试环境 , 因此开发的项目需要软件越多 , 依赖越多 , 安装的环境也就越复杂 。
- 智能手机市场|华为再拿第一!27%的份额领跑全行业,苹果8%排在第四名!
- 会员|美容院使用会员管理软件给顾客更好的消费体验!
- 行业|现在行业内客服托管费用是怎么算的
- 人民币|天猫国际新增“服务大类”,知舟集团提醒入驻这些类目的要注意
- 国外|坐拥77件专利,打破国外的垄断,造出中国最先进的家电芯片
- 技术|做“视频”绿厂是专业的,这项技术获人民日报评论点赞
- 面临|“熟悉的陌生人”不该被边缘化
- 中国|浅谈5G移动通信技术的前世和今生
- 页面|如何简单、快速制作流程图?上班族的画图技巧get
- 桌面|日常使用的软件及网站分享 篇一:几个动态壁纸软件和静态壁纸网站:助你美化你的桌面