赞
踩
Docker可以让开发者打包他们的应用(比如我们自己编写的浏览器项目)以及依赖包(可以理解为该项目运行所需要的nginx、redis、sql等等依赖)到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。
这句话的意思就是通过对应用程序组件的封装、部署、运行等生命周期的管理。使用户的app(也就是项目)以及该app(项目)运行时所需要的环境做到“我只需要进行一次封装,就可以放在任意的服务器上部署运行”。
Docker就是基于容器技术的基础上发展过来的。将应用运行到docker容器上,而docker容器中的内容是不变的,在任何操作系统上都可以运行,这就实现了跨平台服务。只需要配置好项目和所需要的环境,换到别的机上就可以一键部署(也就是在服务器上直接运行容器,容器中的响应指令,就可以对你的服务器环境进行相应的操作),大大简简化了操作。
沙箱机制:沙箱是一个虚拟的系统结构,各个沙箱给程序提供独立的运行空间,使得个程序之间具有独立性,隔离性,互不干扰;假设在沙箱1里运行病毒,都不会影响其他沙箱的运行。
相互之间不会有任何接口(就像是手机中的app一样),还有非常重要的一点就是:容器的性能开销非常的低。
docker实际上就是一个虚拟化轻量级linux服务器,可以解决我们在开发环境中运行的配置问题。
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用来存储镜像的地方,可以把他想象成一个存放Docker镜像的“仓库”。就相当于windows的软件管家
Docker Hub 是Docker官方提供的公共仓库,用户可以在上面查找、下载和分享镜像。同时,企业也可以搭建自己的私有仓库来存放和管理镜像。
通过仓库,用户可以获取到其他的已经创建好的Docker镜像,从而快速部署和运行应用项目。
镜像是Docker的核心组件之一,他是一个只读的文件系统,包含了运行某个应用程序需要的所有代码、运行时环境、库、配置文件等。可以将它理解成安装包。
镜像可以通过Dockerfile来定义,Dockerfile是一个文本文件,其中包含了构建镜像所需要的指令和配置。
通过Dockerfile童虎可以定义应用程序的依赖、环境变量、工作目录等,然后使用Docker命令来构建镜像。
一旦镜像构建完成,他就可以被推送到仓库中供其他人使用,也可以被用来创建容器。
容器也是Docker的一个核心组件,他是镜像的一个可运行实例。
当使用Docker命令从镜像创建容器时,Docker会在宿主机上分配一定的资源(比如像CPU、内存等等)给容器,病在隔离的环境中运行容器内的应用程序。
容器室轻量级的,他们共享宿主机的内核,所以启动的速度非常快,并且占用的资源相对较少。
仓库是Dcoker镜像的存储和分享平台。
镜像是包含应用程序及其运行环境的只读文件系统。
通过容器,用户可以轻松的部署、升级和管理应用程序,而无需关心底层操作系统的细节。
1、简化了配置,程序所需的环境安装创建非常方便
2、代码流水线管理,传统的项目部署可能需要经过很多的环节,容易产生版本的依赖冲突问题,Docker给应用提供了一个从开发到上线都一致的环境,让代码的流水变得简单不少
3、......
我们常说的虚拟机技术,是指在操作系统里面通过模拟安装出来的另外的操作系统,这个模拟出来的操作系统和真的操作系统一模一样。
安装虚拟机软件的操作系统,也就是外面的这个系统 被我们的成为宿主系统,而在虚拟软件中模拟出来的这个系统叫做虚拟系统
比如:你可以在你的Window11里面安装的系统里面 同时安装不同版本的Windows、Centos系统等等,这几个不同的系统被限制在虚拟软件的范围内,而且可以同时单独运行互不干扰,系统之间也可以模拟一个局域网来实现相互访问,
这些虚拟系统除了硬件以外,其他的操作与真实系统无异 (而且我们不需要再多新买机器)。虚拟系统的硬件虽然是虚拟技术模拟出来的,但是他在运行的时候 也会和正常的系统一样,占用宿主系统的资源 比如:CPU、内存、硬盘空间、显卡等等......,在运行的时候都要分配给虚拟系统。
所以,你如果要是用虚拟机的话,你的电脑的性能当然是越高越好,尤其是需要同时运行多个虚拟系统的时候。
1、虚拟机是在硬件级别进行虚拟化,模拟的是硬件搭建操作系统;而docker实在操作系统的层面虚拟化,复用操作系统,运行Docker容器。——这个是最根本的区别
2、Docker的虚度很快,秒级,而虚拟机的速度通常要按照分钟计算。
3、Docker所用的资源要更少,性能更高。同样一个物理机器,Docker运行的镜像数量远多于虚拟机的数量。
4、虚拟机实现了操作系统之间的隔离,Docker是进程之间的隔离,虚拟机的隔离级别更高。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。