什么是docker?小白也能看懂!

在这里插入图片描述

👏大家好!我是和风coding,希望我的文章能给你带来帮助!
🔥如果感觉博主的文章还不错的话,请👍三连支持👍一下博主哦
📝点击 我的主页 还可以看到和风的其他内容噢,更多内容等你来探索!
📕欢迎参观我的个人网站:Gentlewind

在这里插入图片描述



Docker简介

什么是Docker?

Docker是一个用于构建(build),运行(run),传送(share)应用程序的平台

  • 它可以将我们的应用程序连同运行时环境,依赖包和第三方软件库,配置文件等等打包成"集装箱",通过这个小鲸鱼(也就是Docker)运输到我们需要的地方
image-20240131112548667

为什么要使用Docker?

假如我们现在想要搭建一个目前主流的前后端分离项目

image-20240131112718072

我们将使用到:

  • 前端Vue:搭建网站的界面
  • 后端SpringBoot:提供各种服务以及接口
  • 数据库MySQL:来存储数据

而假如我们没有Docker,我们的操作步骤是:

  1. 安装NodeJS环境
  2. 安装各种npm依赖
  3. 安装Java运行时环境
  4. 安装各种第三方依赖
  5. 安装MySQL数据库
  6. 配置环境变量
  7. 启动各种脚本,服务

这样才能将我们的项目运行起来😢

而如果项目再大一点,我们还需要:

  1. 安装配置Redis缓存
  2. 安装配置Nginx负载均衡
  3. 以及各种微服务框架…

是不是已经感觉到头大了?别急,还没完!因为这还只是在开发环境

如果到了测试环境,那么我们需要在新的环境重头再来一遍!

而如果有了Docker

那么我们只需要把应用装进集装箱,如果你在开发环境运行成功了,那么运输到测试环境也是可以运行成功的

image-20240131113639961

Docker和虚拟机的区别

相信大家应该都用过这些常见的虚拟机软件

image-20240131113749297

  • 这是通过一种叫做虚拟化的技术来实现的

虚拟化技术

是一种可以将物理资源虚拟为多个逻辑资源的技术。它可以将一台物理服务器虚拟为多个逻辑服务器,每个逻辑服务器都有自己的操作系统,cpu、内存、硬盘、网络接口等等。它们之间是完全隔离的,可以独立运行

作用:可以将一台服务器的计算能力,存储能力,网络资源分配多台虚拟服务器,实现多台服务器的功能

缺点:每台虚拟服务器都需要占用大量计算机资源,且启动速度慢。并且在实际应用中,我们使用的往往是操作系统的一个功能,却需要启动整个操作系统,造成资源的浪费

了解了虚拟机之后,我们再来看一下容器技术

容器

注意:Docker和容器是两个概念,Docker只是容器的一种实现,是一个容器化的解决方案和平台;而容器也是一种虚拟化技术,和虚拟机类似,是一个独立的环境。

和虚拟机不同的是:容器不需要启动整个操作系统,而是利用宿主机的操作系统,因此启动速度非常快,占用资源也非常少,减少了资源的闲置和浪费。

image-20240131115352900

Docker的核心概念

学习Docker的关键,是要理解Docker中的这几个概念:

  • 镜像
  • 容器
  • 仓库

**镜像:**是一个只读的模板,用来创建容器

**容器:**是Docker的运行实例,提供了一个独立的可移植的环境,可以在这个环境中运行应用程序

💡等等,听到这里,你是否觉得很熟悉?

没错,如果你学习过Java,你会发现镜像和容器的关系,就像Java中类和实例的关系一样。

  • 我们可以定义一个类中有多个属性和方法,这个定义好的类就是一个模板,我们可以根据这个模板创建多个实例,这些实例就是这个类的对象。

  • 对应到Docker中:镜像就是这样一个模板,而容器就是实例,容器可以有多个。

  • 而如果你没接触过Java,我们举个生活中的例子:镜像就类似一个食谱,我们可以根据这个食谱做出多个一模一样的菜出来(也就是创建多个容器),如果你把食谱分享给你的朋友,那么你的朋友也可以做出同样的菜出来。

那么如何将食谱分享给别人呢?这就要用到仓库

**仓库:**是用来存储镜像的地方

目前最流行的Docker公共仓库是Dockerhub,用来集中存储和管理Docker镜像,我们可以在这里下载各种镜像,也可以将自己的镜像上传到这里。这样就实现了镜像的共享和复用

拿刚刚的话来说,如果你发明了一道非常美味的菜肴,你就可以上传食谱到Docker仓库中,这样别人就可以根据这个食谱做出一模一样的菜肴了

Docker的安装

直接在浏览器搜索Docker,进入官网点击下载即可,下载后需要重启

image-20240131144859808

唯一需要注意的是如果是在Windows上安装需要开启虚拟化,如何开启可自行百度

image-20240131151053367

Docker的体系结构

image-20240131153732547

Docker使用client-server架构模式。客户端通过Socket或RESTful API与Docker daaemon进行通信

Docker daaemon是Docker服务端的守护进程,管理Docker的各种资源,又是后台进程,对客户端发送的请求进行处理,并将处理结果返回给客户端

我们在命令行发出的Docker命令都是有它处理返回给客户端的

容器化和Dockerfile

将应用程序打包成一个容器,然后在容器中运行应用程序的过程

它有三个步骤:

  1. 创建一个Dockerfile(来告诉Docker构建镜像所需要的步骤和配置)
  2. 使用Dockerfile构建镜像
  3. 使用镜像创建和运行容器

Dockerfile

就是一个文本文件,用来告诉Docker如何构建镜像。里面包含了我们应用环境所需要的所有命令,例如npm run,各种依赖,第三方库,环境变量等等

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值