Docker篇(二)— Docker架构介绍


一、Docker和虚拟机的区别

Docker可以让一个应用在任何操作系统中非常方便的运行。而以前我们接触的虚拟机,也能在一个操作系统中,运行另外一个操作系统,保护系统中的任何应用。

两者有什么差异呢?

虚拟机(virtual machine)是在操作系统中模拟硬件设备,然后运行另一个操作系统,比如在 Windows 系统里面运行 Ubuntu 系统,这样就可以运行任意的Ubuntu应用了。

Docker仅仅是封装函数库,并没有模拟完整的操作系统,如图:

在这里插入图片描述

对比来看:

在这里插入图片描述

Docker和虚拟机的差异:

  • docker是一个系统进程;虚拟机是在操作系统中的操作系统

  • docker体积小、启动速度快、性能好;虚拟机体积大、启动速度慢、性能一般

二、Docker架构

镜像和容器

Docker中有几个重要的概念:

镜像(Image):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。

容器(Container):镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器进程做隔离,对外不可见。

一切应用最终都是代码组成,都是硬盘中的一个个的字节形成的文件。只有运行时,才会加载到内存,形成进程。

镜像,就是把一个应用在硬盘上的文件、及其运行环境、部分系统函数库文件一起打包形成的文件包。这个文件包是只读的。

容器呢,就是将这些文件中编写的程序、函数加载到内存中允许,形成进程,只不过要隔离起来。因此一个镜像可以启动多次,形成多个容器进程。

在这里插入图片描述

DockerHub

开源应用程序非常多,打包这些应用往往是重复的劳动。为了避免这些重复劳动,人们就会将自己打包的应用镜像,例如Redis、MySQL镜像放到网络上,共享使用,就像GitHub的代码共享一样。

我们一方面可以将自己的镜像共享到DockerHub,另一方面也可以从DockerHub拉取镜像:

在这里插入图片描述

Docker架构

我们要使用Docker来操作镜像、容器,就必须要安装Docker。

Docker是一个CS架构的程序,由两部分组成:

  • 服务端(server):Docker守护进程,负责处理Docker指令,管理镜像、容器等

  • 客户端(client):通过命令或RestAPI向Docker服务端发送指令。可以在本地或远程向服务端发送指令。

如图:

在这里插入图片描述

小结

镜像: 将应用程序及其依赖、环境、配置打包在一起

容器:镜像运行起来就是容器,一个镜像可以运行多个容器

Docker结构:

  • 服务端:接收命令或远程请求,操作镜像或容器

  • 客户端:发送命令或者请求到Docker服务端

DockerHub: 一个镜像托管的服务器,类似的还有阿里云镜像服务,统称为DockerRegistry

相关推荐

  1. docker学习笔记 -----docker介绍

    2024-04-11 12:18:03       42 阅读
  2. docker】之基础

    2024-04-11 12:18:03       53 阅读
  3. docker学习(、终docker-compose)

    2024-04-11 12:18:03       49 阅读
  4. docker架构

    2024-04-11 12:18:03       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-11 12:18:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-11 12:18:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-11 12:18:03       87 阅读
  4. Python语言-面向对象

    2024-04-11 12:18:03       96 阅读

热门阅读

  1. 软件设计模式之解释器模式

    2024-04-11 12:18:03       35 阅读
  2. 【Linux】探索 Linux 中 ls 指令的妙用

    2024-04-11 12:18:03       38 阅读
  3. gitlab 转移项目

    2024-04-11 12:18:03       40 阅读
  4. 怎样让网页中图片的闪烁时间可以分别设定

    2024-04-11 12:18:03       34 阅读
  5. 输入输出系统的组成以及i/o设备与主机的联系

    2024-04-11 12:18:03       38 阅读
  6. 设计模式: 结构型之享元模式(7)

    2024-04-11 12:18:03       33 阅读
  7. 【leetcode面试经典150题】40. 同构字符串(C++)

    2024-04-11 12:18:03       40 阅读
  8. LVS NAT、DR、FULL-NAT 模式介绍

    2024-04-11 12:18:03       35 阅读