Docker基础篇之入门使用

1. Docker的基本组成

Docker的基本组成主要是有四部分,分别是镜像、容器和仓库。

  • 镜像:Docker镜像就是一个只读的模版,镜像可以用来创建Docker容器,一个镜像可以创建很多容器。它也相当于是一个root文件系统,比如官方镜像centos7就包含了完整的一套centos7的最小系统的root文件系统。镜像又相当于容器的源代码,docker镜像文件类似于java的类模版,而docker容器类似于java中new出来的实例对象。
  • 容器: Docker利用容器独立运行一个或一组应用,应用程序或服务运行在容器中,容器就类似于一个虚拟化的运行环境,容器是用镜像创建的运行实例,就像是java中的类和实例对象的关系一样,镜像是静态的定义,容器是镜像运行时的实体。容器为镜像提供了一个标准的和隔离的运行环境。另一方面,容器可以看成一个简单的Linux环境和运行在其中的应用程序。
  • 仓库:仓库时集中存放镜像文件的场所。仓库可以分为私有仓库和公开仓库两种形式。Docker Hub就是最大的公有仓库。

在这里插入图片描述
基于前面介绍的docker的三大要素,docker的工作流程可以描述于下:

Docker是一个CS结构的系统,Docker守护进程工作在主机上,然后通过Socket连接从客户端访问,守护进程从客户端接收命令并管理运行在主机上的容器,容器是一个运行时环境,就是我们前面说的集装箱。
在这里插入图片描述

2. Docker平台架构

前面说到,Docker是一个C/S模式的架构,后端是一个松耦合架构,众多模块各司其职。Docker的运行流程如下所示:

  • 首先,用户使用Docker Client于Docker Daemon建立通信,并发送请求给后者
  • Docker Daemon作为Docker架构中的主体部分,首先提供Docker Server的功能使其可以接受Docker Client的请求
  • Docker Engine执行Docker内部的一系列工作,每一项工作都是以一个Job的形式存在
  • Job的运行过程中,当需要容器镜像时,则从Docker Registry中下载镜像,并通过镜像管理驱动Graph Driver将下载的镜像以Graph的形式存储
  • 当需要为Docker创建网络环境时,通过网络管理驱动Network driver创建并配置Docker容器网络环境
  • 当需要限制Docker容器运行资源或执行用户指令等操作时,则通过Exec driver来完成
  • Libcontainer是一项独立的容器管理包,Network driver以及Exec driver都是Libcontainer来实现具体对容器进行的操作

在这里插入图片描述

3. 阿里云镜像加速

从阿里云上找到镜像加速地址,如下图所示:
在这里插入图片描述
由于我的机器是m1,所以我这里就演示m1如何配置加速镜像。我的mac上的docker客户端是Docker for Mac。下面演示如何配置镜像:

  1. 首先找到设置中的Docker Engine

在这里插入图片描述

  1. 然后将镜像加速地址配置到registry-mirrors数组中,然后重启就配置完成了

在这里插入图片描述

4. Docker的Hello World入门案例

执行下面命令运行入门程序:

docker run hello-world

运行结果如下所示:
在这里插入图片描述
它的运行原理如下所示:
在这里插入图片描述

5. 总结

再次分析一下前面的核心问题:Docker为什么比传统的虚拟机快?

  • docker有着比虚拟机更少的抽象层

由于Docker不需要Hypervisor(虚拟机)实现硬件资源虚拟化,运行在docker容器上的程序直接使用的是实际物理机的硬件资源,因此在CPU、内存利用率上docker将会在效率上有明显的优势。

  • docker利用的是宿主机的内核,而不需要加载操作系统OS内核

当新建一个容器时,docker不需要和虚拟机一样重新加载一个操作系统内核。进而避免引用寻址、加载操作系统内核返回等比较费费资源的过程,当新建立一个虚拟机时,虚拟机软件需要加载OS,返回新建过程时分钟级别的,而docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建立一个docker只需要几秒钟的时间。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值