Docker基础篇之入门使用

Docker基础篇之入门使用

码农世界 2024-05-28 前端 77 次浏览 0个评论

文章目录

    • 1. Docker的基本组成
    • 2. Docker平台架构
    • 3. 阿里云镜像加速
    • 4. Docker的Hello World入门案例
    • 5. 总结

      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只需要几秒钟的时间。

转载请注明来自码农世界,本文标题:《Docker基础篇之入门使用》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,77人围观)参与讨论

还没有评论,来说两句吧...

Top