话不多说 ,先聊聊什么是docker

Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护。

目标:实现轻量级的操作系统虚拟化解决方案。

Docker 的基础是: Linux 容器(LXC)等技术。在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。

docker 与VM的比较

  1. 本质上区别:
VM(VMware)在宿主机器、宿主机器操作系统的基础上创建虚拟层、虚拟化的操作系统、虚拟化的仓库,然后再安装应用;
Container(Docker容器),在宿主机器、宿主机器操作系统上创建Docker引擎,在引擎的基础上再安装应用。
Docker守护进程可以直接与主操作系统进行通信,为各个Docker容器分配资源;它还可以将容器与主操作系统隔离,并将各个容器互相隔离。
  1. 使用上区别:
虚拟机启动需要数分钟,而Docker容器可以在数毫秒内启动。
由于没有臃肿的从操作系统,Docker可以节省大量的磁盘空间以及其他系统资源。

docker的核心概念

  • 镜像image:
    镜像就是一堆只读层,这些只读层是docker内部实现的细节,并且可以在docker宿主机的文件系统中访问到,但是在用户角度看来,只有一个文件系统,这是因为统一文件系统技术能够将不同的层整合成一个文件系统,为这些层提供了一个统一的视角,所以用户看到只存在一个文件系统。如图所示:多个只读层,它们重叠在一起。除了最下面一层,其它层都会有一个指针指向下一层。在这里插入图片描述

    一个镜像可以包含一个完整的操作系统环境
    一个镜像可以创建多个容器
    
  • 仓库repository:

    仓库是集中存放镜像文件的场所;
    仓库分为两种形式:公开仓库和私有仓库;
    最大的公开仓库是:Docker Hub
    
  • 容器container:

    docker利用容器来运行应用
    容器可以被启动、开始、停止、删除
    每个容器是相互隔离的;
    容器和镜像的定义几乎一模一样,唯一不同的是:
    	容器最上面的那一层是可读可写的
    

    容器图如下:最上面一层是可读可写的
    在这里插入图片描述

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐