Docker的简介、虚拟机和docker的区别、docker的核心要素

dcoker是什么?

1、dcoker是一个开源的应用容器引擎,它基于go语言,遵从Apache2.0协议

        Docker可以让开发者打包他们的应用(比如我们自己编写的浏览器项目)以及依赖包(可以理解为该项目运行所需要的nginx、redis、sql等等依赖)到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。

2、Docker的主要目标是“build,ship and run any app,anywhere”

        这句话的意思就是通过对应用程序组件的封装、部署、运行等生命周期的管理。使用户的app(也就是项目)以及该app(项目)运行时所需要的环境做到“我只需要进行一次封装,就可以放在任意的服务器上部署运行”。

3、Linux容器技术的出现解决了这个问题。

        Docker就是基于容器技术的基础上发展过来的。将应用运行到docker容器上,而docker容器中的内容是不变的,在任何操作系统上都可以运行,这就实现了跨平台服务。只需要配置好项目和所需要的环境,换到别的机上就可以一键部署(也就是在服务器上直接运行容器,容器中的响应指令,就可以对你的服务器环境进行相应的操作),大大简简化了操作。

4、容器是完全使用沙箱机制

        沙箱机制:沙箱是一个虚拟的系统结构,各个沙箱给程序提供独立的运行空间,使得个程序之间具有独立性,隔离性,互不干扰;假设在沙箱1里运行病毒,都不会影响其他沙箱的运行。

        相互之间不会有任何接口(就像是手机中的app一样),还有非常重要的一点就是:容器的性能开销非常的低。

        docker实际上就是一个虚拟化轻量级linux服务器,可以解决我们在开发环境中运行的配置问题。

为什么要使用docker?

Docker:虚拟化容器技术

Docker主要解决我们在开发环境配置的迁移技术的问题。

1、我们现在开发了一个javaweb项目,需要依赖很多的环境配置:Tomcat、JDK环境、Nginx、Redis环境等等。

2、本地需要安装这些环境Tomcat、JDK环境、Nginx、Reids环境等等,在打war包给运维部署linux服务器,运维人员也需要在linux服务器上安装Tomcat、JDK环境、Nginx、Redis环境。

3、但是有时候会发生这些问题:我在本地运行环境没问题,但是打包Linux服务器运行总是遇到很多错误,大多数由于一些版本冲突影响。

4、所以在这时候我们就可以使用docker部署和安装软件就很方便,直接将该springboot项目制作成一个镜像为念,镜像文件中包含jdk版本tomcat版本信息,直接部署linux即可,减少依赖冲突概率。

Docker的三大核心要素:仓库(Respository)、镜像(Image)、和容器(Container)

1、仓库(Repository)

        仓库是Docker用来存储镜像的地方,可以把他想象成一个存放Docker镜像的“仓库”。就相当于windows的软件管家

        Docker Hub 是Docker官方提供的公共仓库,用户可以在上面查找、下载和分享镜像。同时,企业也可以搭建自己的私有仓库来存放和管理镜像。

        通过仓库,用户可以获取到其他的已经创建好的Docker镜像,从而快速部署和运行应用项目。

2、镜像(image)

        镜像是Docker的核心组件之一,他是一个只读的文件系统,包含了运行某个应用程序需要的所有代码、运行时环境、库、配置文件等。可以将它理解成安装包。

        镜像可以通过Dockerfile来定义,Dockerfile是一个文本文件,其中包含了构建镜像所需要的指令和配置。

        通过Dockerfile童虎可以定义应用程序的依赖、环境变量、工作目录等,然后使用Docker命令来构建镜像。

        一旦镜像构建完成,他就可以被推送到仓库中供其他人使用,也可以被用来创建容器。

3、容器(Container)

        容器也是Docker的一个核心组件,他是镜像的一个可运行实例。

        当使用Docker命令从镜像创建容器时,Docker会在宿主机上分配一定的资源(比如像CPU、内存等等)给容器,病在隔离的环境中运行容器内的应用程序。

        容器室轻量级的,他们共享宿主机的内核,所以启动的速度非常快,并且占用的资源相对较少。

总结一下:

        仓库是Dcoker镜像的存储和分享平台。

        镜像是包含应用程序及其运行环境的只读文件系统。

        通过容器,用户可以轻松的部署、升级和管理应用程序,而无需关心底层操作系统的细节。

使用Docker的好处

        1、简化了配置,程序所需的环境安装创建非常方便

        2、代码流水线管理,传统的项目部署可能需要经过很多的环节,容易产生版本的依赖冲突问题,Docker给应用提供了一个从开发到上线都一致的环境,让代码的流水变得简单不少

        3、......

Docker和虚拟机的区别:

        1、虚拟机是什么?

                我们常说的虚拟机技术,是指在操作系统里面通过模拟安装出来的另外的操作系统,这个模拟出来的操作系统和真的操作系统一模一样。

        安装虚拟机软件的操作系统,也就是外面的这个系统 被我们的成为宿主系统,而在虚拟软件中模拟出来的这个系统叫做虚拟系统

        比如:你可以在你的Window11里面安装的系统里面 同时安装不同版本的Windows、Centos系统等等,这几个不同的系统被限制在虚拟软件的范围内,而且可以同时单独运行互不干扰,系统之间也可以模拟一个局域网来实现相互访问,

        这些虚拟系统除了硬件以外,其他的操作与真实系统无异 (而且我们不需要再多新买机器)。虚拟系统的硬件虽然是虚拟技术模拟出来的,但是他在运行的时候 也会和正常的系统一样,占用宿主系统的资源 比如:CPU、内存、硬盘空间、显卡等等......,在运行的时候都要分配给虚拟系统。

        所以,你如果要是用虚拟机的话,你的电脑的性能当然是越高越好,尤其是需要同时运行多个虚拟系统的时候。

        2、docker和虚拟机的区别:

                1、虚拟机是在硬件级别进行虚拟化,模拟的是硬件搭建操作系统;而docker实在操作系统的层面虚拟化,复用操作系统,运行Docker容器。——这个是最根本的区别

                2、Docker的虚度很快,秒级,而虚拟机的速度通常要按照分钟计算。

                3、Docker所用的资源要更少,性能更高。同样一个物理机器,Docker运行的镜像数量远多于虚拟机的数量。

                4、虚拟机实现了操作系统之间的隔离,Docker是进程之间的隔离,虚拟机的隔离级别更高。

  • 22
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值