0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

请问Docker和传统虚拟机有什么区别呢?

小林coding 来源:小白debug 2024-03-29 15:54 次阅读

我有一个程序员朋友,他每年情人节都要送女朋友一台服务器。

他说:“谁不想在过节当天收到一台4核8g的服务器呢?”

“万一对方不要,我还能留着自己用。” 给他一次过节的机会,他能把浪漫玩的明明白白。

所以今年情人节,他自己一个人过。

太痛了,是那种布洛芬都不知道他哪里痛的痛。

虽然人跑了,但起码还有服务器陪着他,但屏幕前依然单身的你呢?你连服务器都没有。那么问题就来了,你买过服务器吗?看着云厂商各种产品是不是有点懵。

你知道 ecs,vps,docker 容器 是什么吗?它们有啥区别呢?

我们今天来聊聊这个话题

物理服务器是什么?

我的柜子里有一台大学时候用的废弃电脑,自带 cpu、 内存等硬件操作系统,根据一些教程视频,是可以做成服务器的。

像这样一台看得见摸得着的机器,其实就是云厂商页面里提到的物理服务器物理机。不同厂商叫法不同,有的厂商叫它独立服务器

跟家里电脑不一样的是,云厂商的机器性能更好,核数更高,还有专业的机房和空调伺候着。那既然这样,是不是就不需要买云厂商的服务器呢?

糊涂啊,一台家用电脑跑起来 50 瓦,一年下来电费都好几百,还得花精力伺候着不让它关机,还真不如买别人家的划算。

但问题又来了,云厂商的物理服务器一般都是核数较高,很多时候我们根本不需要这么高配的机器。怎么办呢?这一点云厂商当然也考虑到了。

vps 和 ecs 是什么

云厂商一般会将一台物理服务器分割成多个虚拟机。它跟我们在 windows 用VMware,VirtualBox建的虚拟机其实是一回事。每个虚拟机都拥有独立的操作系统、资源(比如 CPU、内存、存储空间)和公网 IP 地址。然后对外出售,这样的虚拟机就是所谓的VPS(Virtual Private Server,虚拟专用服务器)。

c1a089e0-ed9b-11ee-a297-92fbcf53809c.jpg

VPS

但传统 VPS 有个缺点,不支持用户自主升降级,它的资源是预先分配的,不易动态调整。举个例子,假设你买了1c1g的服务器,想在页面上点点两下升级成2c2g,这在传统 VPS 里是不支持的。如果给 VPS 加入自主升降级的功能,那它就成了ECS(Elastic Compute Service,弹性计算服务)

c1b4671c-ed9b-11ee-a297-92fbcf53809c.jpg

ECS支持自主升降级

用户可以根据需要随时调整 CPU、内存、磁盘和带宽,主打一个弹性。我们可以利用 ecs 学习 linux 命令,部署个人博客,做私人云盘存储,甚至可以将自己做的游戏部署到 ecs 上邀请朋友来玩。

c1c4f6d6-ed9b-11ee-a297-92fbcf53809c.jpg

ecs的用途

docker 容器 是什么

买了 ecs 后,我们一般会开始部署自己的软件应用。机器少的时候手动部署问题不大,机器多了后各种问题就来了,其中最明显的就是,ecs 之间,如果底层操作系统不同,比如有些是ubuntu,有些是centos,部署应用的时候就会有各种环境问题。如果能让软件带着操作系统环境一起去部署就好了,最简单的方案是将软件和操作系统一起打包成虚拟机部署在ecs中。但这样就成了在 ECS(也就是虚拟机)中再运行一个完整的虚拟机,太重了。有解法吗?

c1c8edc2-ed9b-11ee-a297-92fbcf53809c.jpg

虚拟机上再运行一个虚拟机

有。既然多加一个操作系统太重,那我就只打包软件和系统依赖库加配置就好了。然后将这部分系统文件挂到 ecs 的操作系统下,利用一个叫Namespace的能力让它看起来就像是一个独立操作系统一样。再利用一个叫Cgroup的能力限制它能使用的计算资源。这就省掉了一层笨重的操作系统,同时还让软件轻松跑在各类操作系统上。这就是我们常说的Docker 容器技术

c1cc8662-ed9b-11ee-a297-92fbcf53809c.jpg

Docker容器是什么

总的来说就是,物理服务器上跑 ecs,ecs 跑 Docker 容器。多个 Docker 容器共享一个 ecs 实例 操作系统内核。

c1d6b3bc-ed9b-11ee-a297-92fbcf53809c.jpg

ecs和docker容器的关系

服务器怎么选

现在我们了解完他们的区别了,但服务器款式那么多,我们怎么选?如果你是小公司老板或个体创业者,想要好一点的物理机又不想自建机房,那可以考虑买独立服务器。

如果你是像我一样的个人开发者,或者是学生,那无脑冲云服务器 ecs。有了它,我们可以很方便的在上面部署 docker 容器,平时做做实验,部署博客,完全够用了。

c1e9b14c-ed9b-11ee-a297-92fbcf53809c.jpg

容器里跑应用

这时候问题很多的小明就要问了,为什么不选择大厂商的云服务器?是用不起吗?喂喂喂,怎么说话呢?不是大厂云服务器用不起,而是小厂商的更有性价比。就以同样是香港 1 核 1g 的 ecs 为例,小厂商一个月只要 1 碗红烧牛肉面。大厂商则要 3 碗。

同样是 24 核物理服务器,小厂商千把块搞定,大厂商就是它的好几倍。

这省下来的钱,能买多少份19 块 95条的南极人内裤?

这时候问题很多的小明就又要问了,为什么要选香港服务器?大陆的不是更便宜吗?

那是因为香港服务器没有备案的烦恼,而且大陆也能轻松访问,有时候一些热点技术一出来,比如时下火热的 ai 技术,网站越快上线就能越早拿到搜索引擎排名,备案得等个把月,这一等就白白错失了很多成为下一个马总的机会。

最后

好了,如果你觉得这期文章对你有帮助,记得转发给你那不成器的兄弟。

最后遗留一个问题, docker 大概是什么你是了解了,那你知道它的内部架构吗?



审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 操作系统
    +关注

    关注

    37

    文章

    6293

    浏览量

    121906
  • 虚拟机
    +关注

    关注

    1

    文章

    855

    浏览量

    27389
  • ECS
    ECS
    +关注

    关注

    0

    文章

    46

    浏览量

    19942
  • VMware
    +关注

    关注

    1

    文章

    281

    浏览量

    21337
  • Docker
    +关注

    关注

    0

    文章

    437

    浏览量

    11609

原文标题:面试官:Docker和传统虚拟机有什么区别?

文章出处:【微信号:小林coding,微信公众号:小林coding】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    请问QTE可以同几种JAVA虚拟机集成

    《嵌入式linux应用开发完全手册》第500页中有讲:“QTE可以同几种JAVA虚拟机集成。JAVA程序可以基于QTE的工作平台上运行,提供同源程序相同的效果”我就是想请问,是否那个版本的QTE是
    发表于 05-24 05:45

    请问如何安装虚拟机共享文件?

    1、如何安装虚拟机共享文件?安装虚拟机共享文件除了有此作用外,还有其他什么用途
    发表于 07-04 05:56

    虚拟机里的OS怎么和硬件通信

    Ring3但是做了虚拟化后,OS和硬件之间就多了一层VMM,虚拟机里的OS怎么和硬件通信?并且多个虚拟机里的OS怎么协调使用硬件资源?1998年VMware首次解决了这一问题,使用二
    发表于 07-30 06:27

    Android和嵌入式Lnux系统什么区别和联系

    运行Android系统。 其区别就是Android系统和Linux系统的区别。Android系统的底层是Linux的内核,上面跑的是Android的java虚拟机。Android系统的UI...
    发表于 11-08 06:09

    请问OK3399怎么不提供虚拟机镜像编译环境?

    Docker编译环境真难用,怎么不提供虚拟机镜像编译环境
    发表于 12-30 07:34

    Docker监控实战分析

    的「轻」也只是相对于传统虚拟机而已。传统虚拟机Docker 的对比如图: 从图中可以看出 Dock
    发表于 10-13 17:05 2次下载
    <b class='flag-5'>Docker</b>监控实战分析

    什么是 DockerDocker传统虚拟机什么区别

    Docker 容器将软件以及它运行安装所需的一切文件(代码、运行时、系统工具、系统库)打包到一起,这就保证了不管是在什么样的运行环境,总是能以相同的方式运行。就好像 Java 虚拟机一样,“一次编写
    的头像 发表于 03-16 14:28 5.1w次阅读
    什么是 <b class='flag-5'>Docker</b>?<b class='flag-5'>Docker</b>与<b class='flag-5'>传统</b>的<b class='flag-5'>虚拟机</b>有<b class='flag-5'>什么区别</b>?

    什么是虚拟化?什么是DockerDocker容器与虚拟机区别

    Docker是一个虚拟环境容器,可以将你的可执行文件、配置文件及一切其他你需要的文件一并打包到这个容器中,并发布和应用到任意平台。比如,你在本地用Python开发了一个网站后台,开发测试完成后
    发表于 05-03 14:18 2.4w次阅读

    Docker是什么它和虚拟机到底有什么区别

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙盒机制,相互之间不会有
    的头像 发表于 12-29 11:37 3675次阅读

    Docker容器与虚拟机区别

    我曾经将Docker容器视为轻量级,精简的虚拟机。 进行这种比较是有道理的,因为至少在Docker的最初市场中,总是将其与虚拟机进行比较-例如,"
    的头像 发表于 05-03 17:17 7411次阅读

    容器、Docker虚拟机区别

    移植的系统。它不仅简化了打包应用的流程,也简化了打包应用的库和依赖,甚至整个操作系统的文件系统能被打包成一个简单的可移植的包,这个包可以被用来在任何其他运行Docker的机器上使用。 容器和虚拟机具有相似的资源隔离和分配方式,容器虚拟
    的头像 发表于 11-05 09:41 2699次阅读

    如何区分虚拟机Docker

    首先,大家需要明确一点,Docker容器不是虚拟机。 2014年,当我第一次接触Docker的时候,我把它比做一种轻量级的虚拟机。这样做无可厚非,因为
    的头像 发表于 02-14 11:36 809次阅读
    如何区分<b class='flag-5'>虚拟机</b>与<b class='flag-5'>Docker</b>

    XR虚拟拍摄和传统绿幕拍摄有什么区别

    XR虚拟拍摄和传统绿幕拍摄有什么区别 随着科技的不断发展,电影和电视剧的制作技术也在不断升级。XR虚拟拍摄和传统绿幕拍摄是两种不同的拍摄技术
    的头像 发表于 06-25 16:57 406次阅读

    Docker虚拟机区别

    Docker虚拟机是两种不同的虚拟化技术,它们在实现方式、资源消耗、运行性能等方面存在许多差异。本文将会详细介绍它们的区别。 一、实现方式 1.1
    的头像 发表于 11-23 09:37 2512次阅读

    docker虚拟机有何区别

    整个Docker由客户端、服务端和仓库构成
    的头像 发表于 12-06 10:08 273次阅读
    <b class='flag-5'>docker</b>和<b class='flag-5'>虚拟机</b>有何<b class='flag-5'>区别</b>?