可以用docker代替虚拟机,运行生产服务器吗?:正面回答这个问题之前,先看看虚拟机和Dcoker的区别。虚拟机:在一台物理机器上,利用虚拟化技术,虚拟出来多个操
正面回答这个问题之前,先看看虚拟机和Dcoker的区别。
虚拟机:在一台物理机器上,利用虚拟化技术,虚拟出来多个操作系统,每个操作系统之间是隔离的。举例说明:电脑上安装操作系统,比如我们安装了win10的操作系统;再往上安装虚拟机软件,比如我们常用的VirtualBox、VMWare,它们的作用是模拟计算机硬件;这样虚拟机模拟出来的操作系统了;在虚拟的操作系统中,安装所需的软件、组件等。比如我们在虚拟操作系统中安装JDK、Tomcat等;最后就是具体的应用了,也就是把应用部署到Tomcat中。
总结一下虚拟机和Docker的区别:
从两者的架构图上看,虚拟机是在硬件级别进行虚拟化,模拟硬件搭建操作系统;而Docker是在操作系统的层面虚拟化,复用操作系统,运行Docker容器。
Docker的速度很快,秒级,而虚拟机的速度通常要按分钟计算。
Docker所用的资源更少,性能更高。同样一个物理机器,Docker运行的镜像数量远多于虚拟机的数量。
虚拟机实现了操作系统之间的隔离,Docker算是进程之间的隔离,虚拟机隔离级别更高、安全性方面也更强。
再正面回答一下“Docker可以代替虚拟机运行生产服务器么”?
首先,大家需要明确一点,Docker容器不是虚拟机。
正面回答这个问题之前,先看看虚拟机和Dcoker的区别。虚拟机:在一台物理机器上,利用虚拟化技术,虚拟出来多个操作系统,每个操作系统之间是隔离的。举例说明:电脑上安装操作系统,比如我们安装了win10的操作系统;再往上安装虚拟机软件,比如我们常用的VirtualBox、VMWare,它们的作用是模拟计算机...
Docker容器虚拟化的好处 Docker项目的发起人和Docker Inc.的CTO Solomon Hykes认为,Docker在正确的地点、正确的时间顺应了正确的趋势—即高效地构建应用。现在开发者需要能方便地创建运行在云平台上的应用,也就是说应用必须能够脱离底层机器,而且同时必须是“任何时间任何地点”可获取的。...
使用 虚拟机 运行多个相互隔离的应用时,如下图: 从下到上理解上图: 基础...因此,我们需要根据不同的应用场景和需求采用不同的方式使用Docker技术或使用服务器虚拟化技术。...使用 虚拟机 运行多个相互隔离的应用时,如下图: 从下到上理解上图: 基础因此,我们需要根据不同的应用场景和需求采用不同的方式使用Docker技术或使用服务器虚拟化技术。
每日分享科技领域相关内容,有缘相遇,期待关注。在IT行业从业多年,也算从看着时代从物理服务器走向虚拟化云计算时代,又准备进入Docker时代,作为下一代虚拟化技术,Docker正改变着整个行业开发、测试、部署应用的方式,至于虚拟化技术和docker技术到底有什么不同,下面来分析一下。01 什么是虚拟化...我们单位最近在推docker,已经在开发测试环境使用(稍显落后),下面我就谈谈自己的Docker的理解,以及Docker和虚拟机的区别。虚拟机先说说什么是虚拟机:在一台物理机器上
有幸经历传统企业的互联网化转型过程,从一参加工作开始跟着领导做去IOE化,大规模引入开源中间件,在此环境中,Docker进入我们的视野,在测试环境中开始手动部署Docker。由于公司的资源有限,我们的Docker部署采用三层体系,即物理机之上部署虚拟机,然后虚拟机中部署Docker,每个Docker执行只部署...使用 Docker,开发人员只需要关心容器中运行的应用程序,而运维人员只需要关心如 何管理容器。Docker 设计的目的就是要加强开发人员写代码的开发环境与应用程序要部署 的
大家好,我是小枣君。这个问题,我从头给你梳理一下吧: “云计算”这个词,相信大家都非常熟悉了。作为IT行业的热门技术,它频繁出现在各大媒体的新闻报道中。BAT这样的互联网企业,也经常把它挂在嘴边。相信很多人都想学习云计算,跟上技术潮流。如果对云计算有一定了解的话,应该会或多或少地听到...虚拟机运行在hypervisor之上。第二类,物理机上安装正常的操作系统(例如Linux或Windows),然后在正常操作系统上安装hypervisor,生成和管理虚拟机。像VMware、KVM、Xen、
没有固定的算法。但是一般会有几个限制:1.内存内存基本上是一个硬限制。物理服务器的内存肯定是有限的。例如,一台服务器有8 core,8G内存,通常hypervisor会占用512M内存,大概还剩下7.5G内存,假设每个虚拟机的配置是1 core cpu,1G内存,那么在此机器上最多可以运行7个这样的虚拟机。再创建...网卡如果服务器只有一个网卡,所有虚拟机的网络流量都是通过一块网卡出去,虚拟机越多,每个虚拟机可以使用的带宽就会越少,这个是需要综合考虑。例如使用多个网卡等。3.
步骤1:为我们的容器创建第一个镜像 以 centos 镜像作为基础镜像,我们启动自己的容器并在其中执行/bin/bash命令 注:-t-i 参数用于创建一个虚拟的命令行。sudo docker run-t-i centos/bin/bash 现在我们已经成功的运行了自己的第一个容器,并且进入到容器的命令行界面中。在容器中,我们执行...虚拟机的80端口在 Vagrantfile 中被绑定到主机的8080端口,也就是:主机8080->虚拟机80->容器80 sudo docker run-t-i-p 80:80-v/vagrant/htdocs:/var/
关于docker容器与虚拟机的对比,难道不是Docker官网讲解的最好吗?先从认识容器开始 将软件打包成标准...虚拟机(VM)是一个物理硬件层抽象,用于将一台服务器变成多台服务器。...关于docker容器与虚拟机的对比,难道不是Docker官网讲解的最好吗?先从认识容器开始 将软件打包成标准虚拟机(VM)是一个物理硬件层抽象,用于将一台服务器变成多台服务器。
建议选择双至强8核以上处理器.16G以上内存.1000G以上硬盘的配置.网卡选择双千M的.推荐用DELLR410或者DELLC1100等机型.托管到IDC机房以后建议用50G以上独享带宽.除此以外还需要你有一套虚拟主机管理系统以及20个以上的独立IP.用来分配与管理虚拟机. 考虑到成本和风险问题.建议你直接到IDC公司...然后一天开机时间需要到20个小时左右,主要想内存方面大1225 2G/500S,E3-1225的CPU,标配2G ECC内存,500G硬盘×2 RAID,要运行20个虚拟机得自己再添4G内存这样子。
使用虚拟机运行多个相互隔离的应用时,如下图:
从下到上理解上图:
理解Docker容器
使用Docker容器运行多个相互隔离的应用时,如下图:
不难发现,相比于虚拟机,Docker要简洁很多。因为我们不需要运行一个臃肿的从操作系统了。
从下到上理解上图:
对比虚拟机与Docker
Docker守护进程可以直接与主操作系统进行通信,为各个Docker容器分配资源;它还可以将容器与主操作系统隔离,并将各个容器互相隔离。虚拟机启动需要数分钟,而Docker容器可以在数毫秒内启动。由于没有臃肿的从操作系统,Docker可以节省大量的磁盘空间以及其他系统资源。
说了这么多Docker的优势,大家也没有必要完全否定虚拟机技术,因为两者有不同的使用场景。虚拟机更擅长于彻底隔离整个运行环境。例如,云服务提供商通常采用虚拟机技术隔离不同的用户。而Docker通常用于隔离不同的应用,例如前端,后端以及数据库。
要回答这个问题,需要先了解虚拟机和docker的根本区别是什么。
从计算机软件层级来看,docker和虚拟机的区别在于虚拟的软件层级不一样。虚拟机基于同一个硬件,模拟出不同的操作系统;而docker基于同一个操作系统,模拟出不同的运行时环境。我们依次来看:
1. 先看看计算机的软件层次,从下到上依次为:操作系统内核、文件系统(运行时环境)、上层APP。
2. 虚拟机运行在同一个硬件上,可以虚拟出不同的操作系统。比如vmware可以在一台pc上既模拟出一个windows系统,同时也可以模拟出一台linux系统。借助虚拟机,两个不同的操作系统可以同时运行在同一个硬件之上。
3. 而docker则运行在同一个操作系统内核上,虚拟出不同的文件系统或者也可以叫做运行时环境。不同的运行时环境,其对应的文件系统也是不同的。比如java的运行时环境就要求文件系统里存在jdk,而golang的运行时环境则需要有go相关的底层库。在docker上既可以虚拟出一个java的运行时环境,也可以虚拟出go的运行时环境。甚至,基于docker,你既可以虚拟出一个java-1.6的运行时候环境,也可以虚拟出一个java-1.8的运行时环境,而这两个运行时环境可以同时运行在同一个操作系统之上。
了解了虚拟机和docker的区别之后,那我们来看看楼主提出来的问题。这个问题的核心在于对“生产服务器”的理解。
如果把“生产服务器”理解成一个操作系统或者和操作系统紧耦合的环境,比如windows系统,那么显然是无法在docker上运行的;如果把“生产服务器”理解成一个独立的运行时环境,那么按照我们在上面的讲述,显然是可以在docker上运行的。
但是,我认为第二种解释要比较合理。
这个问题太好了,最近一直在学习docker,刚好昨天才把学习笔记整理出来发布到博客上。首先答案是可以的,具体怎样看我下面回答
首先说下服务器干嘛的,不就是为您的应用程序做服务的吗,把一个程序部署到服务就可以通过网址访问了。
一个项目开发的过程中是不是经常碰到一个问题,在我这边运行的没问题啊,怎么在你那边运行就有问题呢?然后摔锅
应用部署到服务器上的过程:因为我是做java开发的,就拿一个正常的java项目举例。首先需要在服务器上搭建基础环境:
配置tomcat
这只是一个简单的项目的部署前的配置,之后把您的项目打包发送的tomcat,运行即可。那如果有十几个服务器需要部署呢?是不是就要配置环境十多次,那人不是崩溃了。而且还会出现开发那边运行没问题,部署上去有问题的事情。所以这个时候docker出来了。
应用部署到docker上的过程:
开发环境下直接打包成镜像
把镜像上传到docker容器即可
两步搞定,不需要配置复杂的环境。如果有十多个容器需要部署怎么办?直接远程下载镜像即可,是不是很简单。
如果您有什么问题欢迎在评论区留言指出
先来简单区分一下虚拟机和docker两个概念。
虚拟机一般指的是完全虚拟化的那种,在虚拟机内部和外部系统是完全隔离的,一般我们买的阿里云什么的虚拟主机都是这种,这样的优点是安全,因为虚拟机内部怎么乱搞都不会影响主系统,缺点也有,就是性能略差。这里性能差主要在于系统读写操作,运行速度的话差不了多少,因为现在的处理器都原生支持虚拟化。
docker是目前衍生出来的新技术,有点类似虚拟机,可以将要运行的项目里各种运行库打包起来,这样我们运维的时候不需要一个一个安装那些依赖,直接下载一个docker包即可,大大简化了部署流程。所以现在docker已经成为了主流。但是docker并不是虚拟机那样的全虚拟化,而是半虚拟化,虽然内部有自己的文件系统,但是进程什么的并不是完全独立的,可以在主系统中看到。
这里我不清楚题目中的“用docker运行生产服务器”是什么意思。如果说的是能不能把项目做成docker来用,那么答案自然是可以的,因为docker本来设计出来就是这么用的。如果意思是能不能用docker代替虚拟机来运行服务器系统本身,那么当然是不行的。虚拟机具有docker所不具备的特性,不能简单的和docker做替代。
答案肯定是可以的,这已经是当前的流行趋势,从mysql就能看得出来,数据库这么重要的东西都能通过docker来运行,更不用说我们的小项目了;如果说你们公司还没有应用docker和kubernetes,只能说你们是传统行业,技术迭代的速度有点儿慢。
有图有真相,上图是docker官方网站的大背景图,企业级容器平台、快速安全可靠。
标准:Docker镜像有着同样的标准,可移植,可以根据镜像快速构建容器服务。
轻量级:容器共享物理机器,每个应用程序不需要单独的操作系统,从而提高服务器利用率。
安全:应用程序在容器中更安全,Docker提供业界最强的默认隔离功能。
虚拟机是将一台服务器转变为多台服务器的物理硬件的抽象,允许多个虚拟机在一台机器上运行,每个虚拟机都包含一个操作系统、应用程序、必要的二进制文件和库的完整副本,占用了数十个GB,另外虚拟机的启动速度也很慢。
除此之外相比传统的部署方式,每次都是安装完一个软件再安装另一个软件,大量重复的工作,并且在安装过程中易出错,结果难易保证。和docker相比较,方便、易管理、标准等以上特性还不足以让你去尝试吗?
理论上是完全可以的,现实中公司也有人这么做了!
问题:
1 docker作为比较新兴的一门技术,虽然带来容器化管理的便捷性,但也增加学习成本
2 docker作为单一服务服务来说,简单快捷,但整套系统都使用docker,docker和docker之间的通信问题等,对设计者来说是一个需要新的思维去搭建合理架构
3 docker相对于传统的服务器部署,可以搜索到的资料相对较少,出问题排查困难
总结:docker作为一款比较成熟的新兴技术,虽然提供了一系列的便捷之处,
但想直接代替服务器,还要经过严谨的验证测试再实施!
评论区中被喷了之后,果断各种查资料,确认了一下,以免误人子弟!
结论:
1 docker可以直接安装在linux物理机上,然后构建容器来运行项目
2 一般情况docker构建虚拟在虚拟机上,能够更加方便维护
感谢评论区大神们的指正,如果还有不对的言论,还请指正!
Docker天生就是用来干这事的。
Docker最适合以单一进程方式,运行微服务的架构组件。如果你要把docker当成桌面用,安装上百十来个工具软件,不停切换,那docker还真不适用。
Docker在实际性能上,要远远高于虚拟机。按照经验判断,我们认为kvm方式的虚拟化,服务器性能有20%左右的损耗,而通过容器方式,性能损耗几乎可以忽略不计。
docker适合平台统一在linux的大单位用,服务越多越好,比如几百、几千、几万。配合k8s调度和微服务改造、加上自动化运维,能够实现弹性扩容和缩容,达到on demand的效果,典型的用例是互联网内容提供商。
对于一般中小企业,只有几十台服务器的,平台不统一的,投资docker不如虚拟机。
除了不能跨os平台,docker的另一个缺陷是隔离度不够。
先说答案:可以,但是没有必要。
容器技术是虚拟化技术的应用,使用容器代替虚拟机运行程序自然是可以的,容器在持续集成方面相对虚拟机还有一定的优势,但是如果仅仅是为了用容器而用容器,则没有必要。
容器技术最大的优势是容器编排,可以实现线上服务的无缝扩容,缩容,降级,熔断等自动化操作,极大的降低运维成本。所以,如果不用容器编排,则无须急着迁移。
华裔女赌王就此没落,生前让所有 浓情端午粽飘香,青浦邀你“云体 上海:“云端”展现端午节文化内 “甜咸大战”!明星艺人们喜欢什 如何做一个男人喜欢的情人(如何 当你和你同时出现在同一个场景中 如何在昏暗的光线下设置快门速度 教育在生活中的价值是什么? 世上做坏事的人死后会面临什么因 拜登就任总统后的第一步是什么? 同意/不同意:人生最重要的目标 二战后,德国在调和分歧方面做得 亚伯·林肯恨白人吗? 一个编辑能把你的故事毁得有多严 现在的iPhone6还能坚持再用一年 曹操为什么不杀司马懿? 现在买房是不是最便宜的时候,现 我身边的农业银行营业厅关了,AT 欧洲媒体评选CBA最有实力球员, 荣耀play的6+128和荣耀8X的6+128 蚂蚁集团是科技公司还是金融公司 请问机友华为mate30P与华为mate3 听说老詹修剪一次指甲需要5小时 为什么说宝宝“一月睡二月哭三月 戴笠人称戴老板,这个是怎么叫出 没有工作能一次性补缴社保么? 我想知道定向师范生和免费师范生 肺癌引起的咳嗽是怎样的呢? 5000mAh电池的5G手机推荐吗?要 恒大亚冠表现“差强人意”,你觉