当前位置: 首页 > news >正文

Linux Docker的简介

参考资料

  1. 30分钟Docker入门教程 ◀ 本篇博客所有图片皆来自于该视频截图
  2. 阮一峰 - Docker 入门教程

目录

  • 一. 环境配置时可能会遇到的问题
  • 二. 什么是Docker
  • 三. 虚拟机 与 Docker 的区别
    • 3.1 虚拟机
    • 3.2 Docker
  • 四. Docker的基本架构
  • 五. Dockerfile


一. 环境配置时可能会遇到的问题

  • 应用程序部署和环境配置繁杂
  • 开发环境的应用能正常运行,但是到了测试和生产环境却问题频发
  • 新同事加入项目组,需要花费大量时间来配置开发环境
  • 严格按照部署配置文档来配置环境,但是中间某一个步骤却始终失败

⏹例如我们有如下项目

  • 前端由Vue构建
  • 后端使用SpringBoot框架
  • 数据库使用Mysql和Redis数据库

😒为了让项目成功运行起来,在开发阶段通常通常需要进行如下配置,并且还需要在这些配置在测试环境和生产环境都需要再配置一遍。
如果顺利的话,很快就能结束,如果出现了问题,要花费很长时间去解决。

在这里插入图片描述


二. 什么是Docker

⏹Docker可以是一个用于构建,运行,传送应用程序的平台,可以将我们的应用程序打包成一个个的集装箱(容器),然后运送到任何地方。
Docker,就可以将应用程序和它运行时所需要的

  • 各种依赖包
  • 第三方软件库
  • 配置文件等

打包在一起,以便在任何环境中都可以正确的运行。

在这里插入图片描述

🧐当我们使用了Docker之后,就可以将项目的各部分打包成一个个集装箱(容器),只要在开发环境中的这些容器运行成功了,那么在其他环境中一定也可以成功运行。

在这里插入图片描述


三. 虚拟机 与 Docker 的区别

3.1 虚拟机

⏹常见的虚拟机软甲如下

  • 我们可以在Windows中通过WSL功能安装和使用Linux系统
  • 也可以在Mac上通过Parallels Desktop虚拟机软件运行Windows和各种Linux系统

在这里插入图片描述
⏹各种虚拟机是通过一种叫做虚拟化的技术来实现的

  • 虚拟化技术是一种将物理资源虚拟为多个逻辑资源的技术
  • 可以将一台物理服务器虚拟成多个逻辑服务器
  • 每个逻辑服务器都有自己的操作系统,CPU,内存,硬盘和网络接口等
  • 各个虚拟机之间互相隔离,可以独立运行
  • 虚拟机在一定程度上实现了资源的整合,可以将一台服务器的计算能力,存储能力,网络资源分配给多个逻辑服务器,实现多台服务器的功能,但是缺点也十分明显,每台虚拟机都需要占用大量的资源,而且启动速度也十分缓慢

在这里插入图片描述

⏹一般情况下,我们的一台服务器上只需要运行一个对外提供服务的应用程序就可以了,并不需要一个操作系统所提供的所有功能。
假设我们需要将Web服务器部署在虚拟机上,为了完成web服务器的部署,虚拟机却需要

  • 启动一个完整的操作系统,包括操作系统的内核和各种系统服务
  • 启动各种工具
  • 启动图形界面等等

这些我们并不需要的服务占用了大量的资源,导致资源浪费和自动速度慢的问题。

在这里插入图片描述

3.2 Docker

⏹Docker只是容器的技术的一种实现,是一种容器化的解决方案平台
而容器是一种虚拟化技术,和虚拟机类似,也是一个独立的环境,可以在这个环境中运行应用程序。

⏹和虚拟机不同的是,容器并不需要运行一个完整的操作系统,而是使用宿主机的操作系统,所以启动速度快。
因为所需要的资源更少,所以可以在一台物理服务器上运行更多的容器,这样就可以更好的利用服务器的资源,减少浪费。
一台物理服务器上只能运行几个虚拟机,但是可以同时运行好几百个容器。

在这里插入图片描述


四. Docker的基本架构

Docker Clinet 负责向 Docker Daemon 发送请求,Docker Daemon 接收到请求之后进行处理,并将结果返回给Docker Clinet
Docker Daemon是一个后台进程,用来接收并处理来自Docker客户端的请求。
我们在终端中输入的各种Docker命令,实际上都是通过Docker客户单发送给Docker Daemon的。

在这里插入图片描述
💥Docker中必须要了解的概念

  • images(镜像)
  • containers(容器)
  • Registry(仓库)

⏹image镜像
Docker中的镜像(images)是一个只读模板,可以用来创建容器(containers),容器是Docker的运行实例,镜像和容器就和Java中的类和实例的关系是一样的。还可以将镜像理解为一个虚拟机的快照(Snapshot),里面包含了要部署的应用程序以及它所关联的所有库。

通过images镜像,我们可以创建多个不同的Containers容器,这里的容器就像是一台台运行起来的虚拟机,里面运行了我们的应用程序,每一个容器都是独立运行的,相互之间不影响。

在这里插入图片描述


五. Dockerfile

  • Dockerfile是一个文本文件,用来告诉Docker如何来构建image镜像,这个镜像中包括了我们应用程序执行的所有命令(各种依赖,配置环境和运行应用程序所需要的所有内容)
  • Dockerfile一般会创建在项目的根目录下,在该文件中写入构建镜像所需要的所有指令,Docker会根据Dockerfile文件来构建镜像
    有了镜像之后,就可以根据镜像创建容器,然后就可以在容器中运行应用程序。

⏹Dockerfile就像是一个自动化脚本,用来创建镜像。创建镜像的过程,就好比在虚拟机中安装操作系统和软件一样。

在这里插入图片描述

相关文章:

  • 基于Python学习《Head First设计模式》第九章 迭代器和组合模式
  • K8S认证|CKS题库+答案| 7. Dockerfile 检测
  • SpringCloud2025+SpringBoot3.5.0+gateway+webflux子服务路由报503
  • Linux知识回顾总结----进程状态
  • 湖北理元理律师事务所实务手记:个人债务管理的理性突围
  • Java线程工厂:定制线程的利器
  • Java八股文——并发编程「并发安全篇」
  • 基于dify的营养分析工作流:3分钟生成个人营养分析报告
  • 山东大学项目实训——基于DeepSeek的智能写作与训练平台(十二)
  • Secs/Gem第十讲(基于secs4net项目的ChatGpt介绍)
  • Python训练营打卡Day48(2025.6.8)
  • 大模型外挂MCP教程(8): 飞算JavaAI智能分析搭建自己的MCP Server
  • Σ∆ 数字滤波
  • Java设计模式面试题详解
  • 内存分配基础:修改SCT文件的简单例子
  • HBM 读的那些事
  • 网络编程(TCP编程)
  • UDP与TCP通信协议技术解析
  • GD图像处理与SESSiON
  • 禅道18.2集成LDAP
  • 做jsp网站用哪些软件下载/磁力天堂最新版地址
  • wordpress 感染支付宝/东莞市网络seo推广服务机构
  • 上海在线做网站/营销网络是啥意思
  • 网站使用协议书/网上销售平台
  • 合肥网站制作公司电话/网络推广和seo
  • 北京西站附近的景点有哪些/天津百度网络推广