docker教程(2)- docker基本概念

Docker是容器化平台

Docker是提供应用打包,部署与运行应用的容器化平台

image-20200607163223286

docker三大核心
  1. docker镜像:镜像是文件,是只读的,提供了运行程序完整的软硬件资源,是应用程序的集装箱。docker镜像是docker容器运行时的只读模板。docker镜像可以用来创建docker容器,每一个镜像都是由一系列的层(layers)组成的。docker使用UnionFS(联合文件系统)来将这些层联合到单独的镜像当中。UnionFS允许独立文件系统中的文件和文件夹(称之为分支)被透明覆盖,形成了一个单独连贯的文件系统。正是因为这些层的存在,所以docker才会显得如此轻量

  2. docker仓库:docker仓库类似于代码仓库,它是docker集中存放镜像文件的场所。docker仓库分为公开仓库(public)和私有仓库(private)两种形式。目前,最大的公开仓库是官方提供的Docker Hub。其中存放了大量的镜像提供用户下载。

  3. docker容器:docker容器是用来运行应用,一个docker容器包含了所有的某个应用运行所需要的环境。每一个docker容器都是从docker镜像创建的,通过镜像创建的运行实例,docker容器可以运行、开始、停止、移动和删除等操作。每一个docker容器都是独立安全的应用平台,相互隔离,互不影响。

容器:是镜像的实例,有Docker负责创建,容器之间彼此隔离。

Docker体系结构

docker使用c/s架构,docker daemon作为server端接受client的请求,并处理(创建、运行、分发容器)它们可以同时运行在一个机器上,也可以通过socket或者RESTful API通信。

image-20200607171611638

docker守护进程(Docker daemon):docker守护进程运行在一台主机上。用户并不直接和守护进程进行交互,而是通过docker客户端进行间接通信。

docker客户端(Docker client):实际上就是docker的二进制程序,是用户和docker交互的一种方式。它用来接收用户指令并且和docker的守护进程进行通信。

#####Docker执行流程

image-20200607173204022

  1. 客户端:docker发送命令到docker daemon
  2. 服务器:docker daemon接受命令并从本地或者中央仓库拉取镜像,然后将镜像放入容器中并运行