初见Docker

      你可能不了解Docker,但我可以一句话劝你学此技术,“我们绝大数学计算机的都是在笔记本电脑上,你觉得你的内存可以开多少虚拟机呢?而你又可以开多少容器呢?”

          现在,在CSDN中查一下Docker会冒出很多博主写的一篇带你学会Docker,巴拉巴拉~的,很全面,我也觉得他们写得很好,但在我未了解清楚Docker前,一直有股迷雾笼罩着我,即:为什么使用Docker,Docker有什么好处。

        首先,我需要弄清的是为什么我需要Docker。在这里我结合我的实例进行讲解。

        我是基本跟着B站黑马走的,看了SpringBoot,后总想自己写一个项目试试,于是在GitHub上找了一个前后端分离的项目,里面就有redis技术,需要提前了解,于是我在黑马查询redis技术的视频,但第一篇就难住我了,怎么还需要centos7啊,我没有下载虚拟机啊,于是转战CSDN,查询redis的安装流程,结果果不其然大多都是linux环境(即虚拟机下安装使用),那这我查的毫无意义啊,后询问学长,发现了Docker这款”神器“,不明白为什么都不把Docker下载redis放在首列,你但凡查redis的下载,几乎都是虚拟机,或者windows版等排前,所以我了解Docker是从学长那里知道的,而非B站的老师们。

        由上就引出Docker的一大重要的特性,即Docker可以一键下载运行,而不需我们再花费大量的时间精力去安装配置,只因Docker它会提供一个与之匹配的发行版环境(镜像)。

        既然,Docker这么好,那它还有什么特性和有利于我的呢?

        那么我们就来好好的学习学习Docker吧,以下是狂神老师的B站课程(狂神老师,讲解非常细腻,具有体系,而且人非常具有开源精神)(4、Docker能做什么_哔哩哔哩_bilibili

        Docker是一种容器化技术,它提供了一种轻量级、可移植、可扩展的容器化解决方案,可以将应用程序及其依赖打包成一个独立的容器。

以下是Docker的一些关键技术:

  1. 容器化:Docker利用Linux的内核特性(如命名空间和cgroups)来创建和管理容器,每个容器相互隔离,可以独立运行其应用程序和依赖。容器化使得应用程序以一种可重复、可移植的方式运行在不同的环境中。

  2. 镜像:Docker使用镜像来打包应用程序及其依赖。镜像是一个只读的模板,包括了运行一个容器所需的一切,如操作系统、应用程序、库文件等。可以通过Docker镜像来创建和启动容器。

  3. 仓库和注册表:Docker仓库是用来存储和共享Docker镜像的地方。Docker Hub是一个公共的Docker仓库,可以从中获取常见的镜像。Docker注册表是用于存储和分发自定义的Docker镜像的私有仓库。

  4. 容器编排:Docker提供了一些工具和技术来管理和编排容器集群,例如Docker Compose、Docker Swarm和Kubernetes。这些工具可以自动化容器的部署、扩展和管理,使得容器化应用程序可以在分布式环境中运行。

  5. Dockerfile:Dockerfile是用于定义Docker镜像的文本文件。通过编写Dockerfile,可以指定容器的基础镜像、添加依赖、设置环境变量、运行命令等。使用Dockerfile可以实现对应用程序的自动化构建和部署。

  6. 网络和存储:Docker提供了不同的网络驱动和存储驱动,用于配置容器的网络连接和持久化存储。可以创建自定义的网络以及挂载存储卷,使得容器之间可以进行通信并且持久化数据。

总的来说,Docker的技术使得应用程序在不同的环境中更加可移植、可部署和可管理。它最大的优点是提供了一种轻量级和模块化的方式,使得应用程序的开发、测试和部署过程更加高效和可靠。

知道了以上的知识,那我们来比较一下容器化和虚拟机区别:

  1. 资源利用率:虚拟机技术通过在物理主机上模拟多个独立的虚拟机来运行多个操作系统和应用程序。每个虚拟机都需要独立的操作系统和一整套的系统资源(如内存、硬盘、CPU)。相比之下,容器化技术并不需要模拟整个操作系统,容器共享宿主操作系统的内核和系统库,因此容器的资源利用率更高,启动和停止速度更快。

  2. 隔离性:虚拟机是在物理硬件上创建一个完整的虚拟环境,每个虚拟机都是相互隔离的,有自己的操作系统和内核。而容器共享宿主操作系统的内核和资源,在容器之间使用Linux的命名空间和cgroups等特性实现隔离,但隔离程度不如虚拟机。

  3. 部署时间:虚拟机技术启动一个新的虚拟机需要初始化整个操作系统和应用程序的运行环境,因此启动时间相对较长。而容器化技术通过使用镜像来打包应用程序及其依赖,可以快速启动和停止容器,部署时间更短。

  4. 可移植性:由于容器共享宿主操作系统,容器化技术在不同平台之间更加可移植。容器可以在任何支持容器运行时的环境中运行,而虚拟机需要为每个不同的硬件平台重新生成和配置。

  5. 管理复杂度:虚拟机技术需要在每个虚拟机上安装和管理操作系统,需要额外的资源和管理工作。而容器化技术可以通过集中管理工具(如Docker Swarm和Kubernetes)轻松管理大规模的容器集群。

综上所述,虚拟机和容器化技术在隔离程度、资源利用率、启动时间、可移植性和管理复杂度等方面存在区别。虚拟机适用于需要完全隔离和独立操作系统环境的场景,而容器化技术适用于需要更高资源利用率、快速启动和部署的场景。

        具体怎么操控Docker,请转看其他博主吧,我是看的官网(Install Docker Desktop on Windows | Docker Docs

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值