docker容器与虚拟机有什么区别?

  • 1回答
  • 1浏览
  • 提问时间:2021-07-22
最佳答案 直观来说,vm有一层guestOS,Hypervisor会虚拟化硬件资源,docker会直接使用硬件资源,所以资源利用率比docker低更容易理解。其次,openstack可以以10/min的速度创建虚拟机,在docker面前很弱,因为docker使用宿主机的系统核心,所以可以在几秒钟内创建大量容器,它们的启动速度在数量级上是有差距的。最于找到了一个IBM测试案例,关于计算能力,为什么kvm会有这么大的性能损失,一方面是因为虚拟机增加了一层虚拟硬件层,运行在虚拟机上的应用程序在计算数值时运行在Hypervisor虚拟CPU上;另一方面是由于计算程序本身的特性而产生的差异。虚拟机虚拟的cpu架构不同于实际cpu架构,数值计算程序一般针对特定的cpu架构有一定的优化措施,虚拟化使这些措施作废,甚至起到反效果。< img class="cto- img" src="https://s2.51cto.com/images/20210722/1626934311296673.jpg" title="1626934311296673.jpg" style="display:block;margin:auto;" alt="1.jpg"/>比如对于本次实验的平台,实际的CPU架构是2块物理CPU,每块CPU拥有16个核,共32个核,采用的是NUMA架构;而虚拟机则将CPU虚拟化成一块拥有32个核的CPU。这就导致了计算程序在进行计算时无法根据实际的CPU架构进行优化,大大减低了计算效率。
问答分类:服务器

windows 上安装 docker有什么作用?

  • 1回答
  • 3浏览
  • 提问时间:2021-07-22
最佳答案 刚刚遇到这个问题,一开始兴奋地以为在windows(win)上安装一个docker岂不是可以避免以前那么多的安装困扰,后来想了想,除了在win上安装一个docker,还能做些什么?毕竟那些mq和es应该部署在linux服务器上,所以在win上安装docker意义不大。另外,说说我刚看完的理解。在win上安装docker,无论是通过dockertoolbox还是Hyper-V,本质上都是通过虚拟机实现的。绕来绕去或者在你的win上安装类似linux的虚拟机,然后在虚拟机上安装docker。区别只是win上docker安装的mysql域名和本机(localhost)共用。如果我自己的电脑已经有了虚拟机,甚至我有了自己的云服务器,那我为什么要努力呢?目前,DockerforDesktop以Hyper-V和WSL2为backend运行。就技术而言,实际上和你安装Linux虚拟机然后手动安装Docker是一样的。但直接使用DockerforDesktop会节省你一点手动和Windows集成的功夫。例如你可以直接做portmapping或者直接挂在Windows文件夹到Docker里。体验上更好一点。除此以外,就是Docker,或者容器化本身的好处。例如你可以以统一的方式执行软件。dockerpull和dockerexec就能把大部分东西跑起来。< img class="cto- img" src="https://s2.51cto.com/images/20210722/1626934142208957.jpg" title="1626934142208957.jpg" style="display:block;margin:auto;" alt="6.jpg"/>你可以启动多个应用实例,不用担心有些应用系统只能启动一个实例。你可以直接构建不同的应用程序,不用在不同的SDK版本中切来切去,不用担心要手动搭构建环境,诸如此类的东西。
问答分类:服务器

在个人电脑(非服务器)上中重度使用docker是什么体验?

  • 1回答
  • 1浏览
  • 提问时间:2021-07-22
最佳答案 没有经验,正常需求,怎么了?当您在本地开发时,您需要数据库(Mysql,Redis,Oracle等)吗?用Docker在本地跑再合适不过了。有没有用过某S开头S结尾的戴笠工具?它的Local程序既是客户端,也是服务器(在本地启动Socks5服务)。最新版本可以使用,无需Docker自己编译(我指的是最好的Libev版本)。您自己写的程序启动和进程管理不麻烦(适合Systemd、UpStart、SysV...)?在Docker中,如果不依赖本地环境,服务管理可以与所有发行版兼容。你编译过内核、JVM、Android甚至Docker自身吗?< img class="cto- img" src="https://s2.51cto.com/images/20210722/1626933988906628.jpg" title="1626933988906628.jpg" style="display:block;margin:auto;" alt="4.jpg"/>它们用封装好的镜像跑一个容器就能开始编译工作,全程不需要你配置任何系统环境,也不会对你的系统产生侵入。不仅方便得不行,也不会带来后续的清理麻烦。你在本地搭建过集群环境吗?这方面虚拟机VSDocker?前者当然没得比啊~Docker从来就不是只能在服务器上使用的工具,个人电脑上用途一样很大滴~
问答分类:服务器

如何通俗解释Docker是什么?

  • 1回答
  • 4浏览
  • 提问时间:2021-07-22
最佳答案 个人感觉还是没有完整的解释清楚Docker,自己开个回答补充一下。要解释清楚Docker,首先要解释清楚容器的概念。要解释容器,需要从操作系统入手。一两本一两本书说不清楚,直接引用维基的说法。操作系统是管理计算机硬件和资源,为软件运行提供通用服务的系统软件。硬件管理,包括分配CPU时间和内存;从网络、存储设备等IO设备读写数据。软件管理是各种软件的运行、线程、过程调度等工作。为软件提供运行环境,一部分通常由操作系统核心提供,另一部分由操作库提供。此外,Docker公司提供公共的镜像仓库(Docker称之为Repository),Githubconnect,自动构建镜像,大大简化了应用分发、部署、升级流程。加上Docker可以非常方便的建立各种自定义的镜像文件,这些都是Docker成为最流行的容器技术的重要因素。< img class="cto- img" src="https://s2.51cto.com/images/20210722/1626933862318059.jpg" title="1626933862318059.jpg" style="display:block;margin:auto;" alt="3.jpg"/>通过以上这些技术的组合,最后的结果就是,绝大部分应用,开发者都可以通过dockerbuild创建镜像,通过dockerpush上传镜像,用户通过dockerpull下载镜像,用dockerrun运行应用。用户不需要再去关心如何搭建环境,如何安装,如何解决不同发行版的库冲突——而且通常不会需要消耗更多的硬件资源,不会明显降低性能。这就是其他答主所说的标准化、集装箱的原因所在。
问答分类:服务器

想使用Linux环境,WSL、Docker、VM应该怎么选择

  • 1回答
  • 1浏览
  • 提问时间:2021-07-22
最佳答案 事实上,WSL1和VM只有两大选择。WSL1使用Windows内核模拟的各种系统接口。尽管大多数Linux应用程序都可以运行,但仍有许多依赖于内核的应用程序无法正常运行——例如Docker。此外,WSL1和Windows共享文件系统和网络有时会头疼。本质上,WSL2/Docker都是Hyper-V。WSL2是轻量级量级的Hyper-VVM;如果DockerforWindows想跑Linux镜像,它将安装一台Hyper-V虚拟机来运行Linux,可以通过Hyper-V管理工具看到。因此,除非您运行某些特定的软件,并且在WSL1上没有问题选择使用WSL1,否则WSL。Docker、VM的选择说白了就是你选择用什么VM软件:懒得对VM进行管理的,默认设置就OK的,WSL2,轻量启动快,安装方便,和Windows结合紧密;< img class="cto- img" src="https://s2.51cto.com/images/20210722/1626933739235226.jpg" title="1626933739235226.jpg" style="display:block;margin:auto;" alt="2.jpg"/>本来就用Hyper-V,又需要用Docker,还懒得自己装一个Linux并且配置Docker运行环境,Docker;不嫌安装vm软件、管理vm的虚拟硬件/网络、在vm上安装一个Linux并且配置环境麻烦,那就用你最喜欢的vm软件,装一个LinuxVM,这是最灵活的。毕竟Hyper-V会和很多VM软件/安卓模拟器冲突,另外也可以访问USB设备,大部分VM软件的图形界面性能比Hyper-V好。
问答分类:服务器

docker真的好难用啊,为什么说它移植性好啊?

  • 1回答
  • 1浏览
  • 提问时间:2021-07-22
最佳答案 真香定律肯定会再次生效。不知你的身份角色。如果是偏运维,以后你就明白了,当你的用户和领导要求你在同一台机器上同时安装许多不同版本的php,安装不同版本的nginx时,你就会知道麻烦。如果偏开发,当你要求别人服务器上安装依赖就知道了,你偏爱ubuntu,运维说服务器只能是centos,你就知道区别了。假如是我自己使用的项目,我会用docker,因为配置真的很复杂;如果我的项目是给别人的,我会让这个项目支持docker,因为软件部署会遇到这样那样的环境问题,你根本想不出你的用户会用到什么环境,然后用docker部署就可以避免了。而且,如果使用了docker(容器化)全家桶:mesos、k8s~,这时搞起来,真的是真香~< img class="cto- img" src="https://s2.51cto.com/images/20210722/1626933519258150.jpg" title="1626933519258150.jpg" style="display:block;margin:auto;" alt="1.jpg"/>而docker正是调和这个矛盾的利器之一。开发部门将软件以及软件所有的依赖全部封装到一个镜像里,爱用debian用debian,爱用alpine也可以,爱装java11就尽情用。这些真不香么?运维部分呢,只需要拿到镜像,设置好网络和服务器资源就可以了,软件依赖再也与你无关,这些不香么?
问答分类:服务器

怎样打开服务器端口?

  • 1回答
  • 10浏览
  • 提问时间:2021-07-20
最佳答案 接下来我来回答一下怎样打开服务器端口?打开任务管理器的方法有哪些? 经常有客户提出请帮我打开服务器xxx端口、服务器不能打开xxx端口等问题。以下是从以下几个方面为您解释的: 1.由于一些服务提供商在防火墙上限制了端口,用户会发出这样的问题和问题。三丰云的云服务器没有限制,用户可以在三丰云的所有端口上自己操作。 2.服务器上的端口可以打开和关闭,用户程序和服务器上的防火墙可以控制,所以管理员不能帮你打开/关闭端口。 3.只有服务器通过程序启动某个端口(可以使用netstat-an命令查看),该端口才能被客户端访问。 4.所谓打开/关闭端口,一般是指防火墙的操作,而三丰云并没有对客户进行任何拦截。举例来说:假设用户让80端口打开,其实只要用户服务器配置好IIS等WEB服务环境,服务器防火墙没有拦截80端口,那么此时80端口就可以使用了。 这里为你介绍计算机打开任务管理器的三种方法:场景:需要查看任务管理器,查看过程和内存占用。 方法一:快捷键打开法。1.按ctrl+alt+del组合键调出任务管理器。按下ctrl+shift+esc组合键,即可调用任务管理器。两者都可以,第一种比较常见,第二种比较方便,可以任意选择。 方法二:运行。Win+R打开运行对话框,在对话框中输入taskmgr。您还可以打开任务管理器。 方法三:快捷方式。在c:\WINDOWS\system32\文件夹下找到taskmgr.exe,右键单击弹出菜单,选择发送/桌面快捷方式。< img class="cto- img" src="https://s2.51cto.com/images/20210720/1626771751590657.png" title="1626771751590657.png" style="display:block;margin:auto;" alt="image.png"/>
问答分类:服务器

根服务器全在国外,紧急情况下有可能发生网络瘫痪吗?

  • 1回答
  • 1浏览
  • 提问时间:2021-07-16
最佳答案 共有13个域名服务器,包括1个主域名服务器和12个副域名服务器。美国只有一台主根域名服务器和九台辅根域名服务器,欧洲有两台辅根域名服务器,日本有一台辅根域名服务器。目前国内没有主辅域名服务器。一旦发生紧急情况,是否意味着网络将瘫痪?先给出答案,再分析。突发事件一旦发生,可能会对现有网络产生一定的影响,但不会瘫痪那么严重,至少国内网络通信不会受到影响!了解域名服务器是如何工作的,这个问题很容易理解。起初,人们通过IP地址访问服务器。即将出现的问题是不方便记忆,不通过域名直接进入。但是,网络中的设备无法识别此事,因此引入域名服务器,将域名与服务器的IP地址绑定在一起。客户端发送访问服务器的请求,域名服务器根据记录信息,确保消息正确发送到服务器。每个域名服务器不包含互联网的所有信息,只有根域名服务器可以实现。归根结底,因特网源于美国,根域名服务器具有先天优势。没有访问域名服务器的服务器该怎么办?基础域名服务器将向其上级域名服务器发出申请,直到您找到最终的根域名服务器。在什么情况下使用根域名服务器?本地域名服务器不包含用户想要查询的服务器信息,可以向上查询。目前网络流量主要集中在国内,相对较小,需要对外访问的流量相对较少,而国内域名服务器基本可以满足需求,这也是上面提到的情况,虽然不会瘫痪。世界上许多国家都对此进行了测试,并在未来发生紧急情况时主动切断域名服务器与域名服务器的连接。什么是镜子根域名服务器?为什么要在国内引进镜像根域名服务器?镜子下面看起来很清晰,是我们照镜子时的虚拟图像。镜像根服务器是指服务器的克隆数据,可以同步域名根服务器的所有数据信息,但不能添加或删除数据。简而言之,镜像根域名服务器有权读取数据,而不包括写作权限。引入镜像根域名服务器后,对于需要国外访问的用户,数据包不需要发送到根域名服务器,只需要访问镜像根域名服务器。就网络延迟而言,有利于提高这些用户的网络体验;从负载的角度来看,根域名服务器的负载强度降低。尽管如此,根域名服务器仍然掌握在他人手中,潜在的风险仍然存在。为了扭转这种局面,中国领导和推动了“雪人计划”。域名服务器是指在美国更具活力的IPv4服务器,它是雪人计划的主要对象。全球将建立3个主根服务器和22个辅助服务器。互联网顺利过渡到IPv6时代,美国对域名服务器的垄断即将结束。 < img class="cto- img" src="https://s2.51cto.com/images/20210716/1626402986979300.png" title="1626402986979300.png" style="display:block;margin:auto;" alt="image.png"/>
问答分类:服务器

虚拟机有什么作用?

  • 1回答
  • 2浏览
  • 提问时间:2021-07-15
最佳答案 伴随着科学技术的不断发展和人们生活水平的飞速提高,电脑几乎已经成为了每个家庭的必备工具,它给我们带来的方便也是不言而喻的。当使用电脑时,许多朋友也会发现一个问题,一台电脑虽然可以安装多个操作系统,但那将对电脑硬件有很大的要求,同时不同操作系统上的文件很难同步。虚拟机的出现,很好的解决了这个问题,它让大家在同一台物理机上方便地体验、使用、测试不同操作系统,可谓是一款“神器”!虚拟机是指具有完整硬件系统功能的完整计算机系统,通过软件模拟运行在完全隔离环境中。可以在虚拟机上完成的工作可以在实体计算机中实现。实体机的部分硬盘和内存容量需要作为虚拟机的硬盘和内存来创建虚拟机时的硬盘容量。每台虚拟机都有独立的CMOS、硬盘和操作系统,可以像实体机一样操作虚拟机。VM ware虚拟机。Virtual Machine是一种虚拟机(Virtual Machine),它由软件模拟而成,它使我们能够在一台物理计算机上模拟具有与物理计算机无异功能的多台虚拟计算机。Windows xp系统安装在虚拟机上。对一般用户而言,一台虚拟机让我们体验不同的操作系统,同时可以存储一些文件等。对专业人员来说,虚拟机也可以进行***测试训练、漏洞扫描训练、病毒释放训练等等。KALI linux系统安装在虚拟机上。但是,由于虚拟机并非物理机,当我们将病毒植入到虚拟机进行测试或利用漏洞***虚拟机时,虚拟机会就崩溃了,但是,仅仅是虚拟机上的操作系统崩溃了,通过虚拟机的快照功能,我们很快就可以回到以前的状态。这一系列的过程中,物理机不受任何影响。因此,虚拟机被广泛地应用于各个领域,无论是个人还是组织、机构、虚拟机都可以发挥不同的作用。 < img class="cto- img" src="https://s2.51cto.com/images/20210715/1626337485691405.png" title="1626337485691405.png" style="display:block;margin:auto;" alt="image.png"/>
问答分类:服务器

服务器虚拟化有哪些缺点?

  • 1回答
  • 4浏览
  • 提问时间:2021-07-15
最佳答案 缺乏虚拟化的总体规划,这是当前虚拟化所面临的最大隐患。比如,一些用户只是为了在部分应用中提高服务器资源的使用效率,而缺乏对服务器、负载、应用和业务需求的全面研究和规划,直到应用虚拟化软件后,才认识到虚拟化需要对不同工作负载的不同考虑,对不同的负载采用不同的方案,并随之涉及虚拟应用的整合比等问题。仍有许多用户对TCO缺乏足够的研究,根本没有考虑到在使用虚拟机之前需要对硬件、基础设施进行更深入的分析和优化。如果不提前计划,虚拟化应用将带来巨大的风险。由于缺乏虚拟化系统管理,许多用户对虚拟化系统的管理认识不足,在部署之后又没有对虚拟化系统的具体管理方法加以重视和实施,很有可能导致虚拟环境中出现性能问题,给IT人员带来无尽的新麻烦。举例来说,虚拟化在容量、性能、配置或者自动部署和管理等领域都会成为新问题的导火索。在虚拟化应用中,轻视了系统管理的复杂性,导致了系统管理不到位,成为虚拟化应用的致命问题。虚拟机负载过度虚拟化可以动态地配置资源,这样就能处理更多或更少的负载,这样做似乎可以解决虚拟设备负载过重的问题。但是,这并不意味着虚拟服务器将永远被压垮。VirtualTechnologies有其自身的局限性,在基础结构中添加太多的虚拟机会是不可取的。许多用户在配置虚拟机时没有深入分析物理机的承载力。缺乏测试环节虚拟化是实现快速资源服务的一种途径,但这并不意味着IT部门可以忽略在实现虚拟机之前进行容量规划和将应用分配到虚拟基础设施之前的测试。许多企业用户在使用动态虚拟机后,意识到没有测试I/O、占用率等其他问题,就会匆忙地把新的应用或服务器搬到虚拟环境中。它常常会引起大问题。如果不在虚拟化中进行持续优化,大量需求是动态的。它还意味着在部署相关的虚拟化解决方案后,企业需要不断地管理和优化。许多用户在这一方面做的非常不够。在一开始,企业的IT主管必须在一开始就制定虚拟机的生命周期管理计划,并且配备相关的虚拟化管理。 < img class="cto- img" src="https://s2.51cto.com/images/20210715/1626335256357933.png" title="1626335256357933.png" style="display:block;margin:auto;" alt="image.png"/>
问答分类:服务器