信创整体解决方案助推企业数字化转型与智能化发展
728
2022-11-17
Docker入门-1 Docker是什么?
目录一.简介二.虚拟机三.Linux 容器四.Docker是什么?五.Docker的用途六.Docker的组成七.Docker的组件八.Docker和虚拟化的区别九.Docker的优缺点
一.简介
软件开发最大的麻烦事之一,就是环境配置。举例来说,你在windows10上安装了一款游戏,启动发现缺少某某依赖包,好不容易安装后,发现又报了另一种错误,不厌其烦。
即使是类似steam这种游戏整合器,自动帮你装了各种依赖,但依然有的电脑缺少一些基本要素,毕竟初始系统还是有点差别的,有的人安装ghost系统,有的是纯净版系统。
二.虚拟机
虚拟机(virtual machine)就是带环境安装的一种解决方案。它可以在一种操作系统里面运行另一种操作系统,比如在Windows系统里面运行Linux系统。应用程序对此毫无感知,因为虚拟机看上去跟真实系统一模一样,而对于底层系统来说,虚拟机就是一个普通文件,不需要了就删掉,对其他部分毫无影响。
虽然用户可以通过虚拟机还原软件的原始环境,例如让你安装游戏的时候-一个虚拟机,在虚拟机里进行玩耍,会确保环境一致。但是,这个方案有几个缺点。
1.资源占用多虚拟机会独占一部分内存和硬盘空间。它运行的时候,其他程序就不能使用这些资源了。哪怕虚拟机里面的应用程序,真正使用的内存只有1MB,虚拟机依然需要几百MB 的内存才能运行。
2.冗余步骤多虚拟机是完整的操作系统,一些系统级别的操作步骤,往往无法跳过,比如用户登录。
3.启动慢启动操作系统需要多久,启动虚拟机就需要多久。可能要等几分钟,应用程序才能真正运行。
三.Linux 容器
由于虚拟机存在这些缺点,Linux发展出了另一种虚拟化技术:Linux容器(Linux Containers,缩写为 LXC)。
Linux容器不是模拟一个完整的操作系统,而是对进程进行隔离。或者说,在正常进程的外面套了一个保护层。对于容器里面的进程来说,它接触到的各种资源都是虚拟的,从而实现与底层系统的隔离。
由于容器是进程级别的,相比虚拟机有很多优势。1.启动快容器里面的应用,直接就是底层系统的一个进程,而不是虚拟机内部的进程。所以,启动容器相当于启动本机的一个进程,而不是启动一个操作系统,速度就快很多。
2.资源占用少容器只占用需要的资源,不占用那些没有用到的资源;虚拟机由于是完整的操作系统,不可避免要占用所有资源。另外,多个容器可以共享资源,虚拟机都是独享资源。
3.体积小容器只要包含用到的组件即可,而虚拟机是整个操作系统的打包,所以容器文件比虚拟机文件要小很多。
总之,容器有点像轻量级的虚拟机,能够提供虚拟化的环境,但是成本开销小得多。
四.Docker是什么?
Docker属于Linux容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。
Docker将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。
总体来说,Docker的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。
五.Docker的用途
Docker的主要用途,目前有三大类。1.提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。
2.提供弹性的云服务。因为Docker容器可以随开随关,很适合动态扩容和缩容。
3.组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。
六.Docker的组成
Docker的三大理念是:构建、运输、运行
就像Docker的图标一样,它托着许多集装箱。我们可以把宿主机可当做这只鲸鱼,把相互隔离的容器可看成集装箱,每个集装箱中都包含自己的应用程序。鲸鱼或许代表着创始人Solomon Hykes眼中的互联网愿景,就像20世纪50年代集装箱颠覆了全球物资运输方式一样,它将会颠覆信息运输方式,让货物在互联网的火车、汽车、轮船之间畅通无阻。
Docker类似于cs结构,一个守护进程作为服务端,命令作为客户端,用户拿client方式来操作服务端。
七.Docker的组件
镜像(Image)类似于虚拟机,作用和虚拟机是一样的,唯独是组成部分会有些区别。简单的说想启动一个容器就必须要有镜像
容器(Container)docker是通过容器来运行业务的,就像运行一个kvm虚拟机是一样的。容器其实就是从镜像创建的一个实例。 我们可以对容器进行增删改查,容器之间也是相互隔离的。和虚拟机最大的区别就是一个是虚拟的一个是隔离的。
仓库(Repository)如百度网盘一样,我们需要一个仓库来存放镜像,Docker官方提供了公共的镜像仓库;从安全和效率的角度考虑我们也可以部署私有环境的Registry或者是Harbor。
八.Docker和虚拟化的区别
特性 | 容器 | 虚拟机 |
---|---|---|
启动时间 | 秒级 | 分钟级 |
硬盘使用(镜像大小) | 一般为MB | 一般为GB |
性能 | 接近原生 | 额外占性能 |
系统支持量 | 单机支持上千个容器 | 一般几十个 |
九.Docker的优缺点
优点:启动快轻量,每个镜像都非常小轻隔离,每个容器都进行隔离,相互不影响
缺点:容器的隔离性没有虚拟化强共用linux内核,安全性有先天缺陷selinux难以驾驭监控容器和容器排错是个挑战
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~