Docker 官方版本只能在 X64 Linux 且内核版本为 3.0 的机器正常运行
核心概念:
镜像(image ):
Docker 镜像就是一个只读的模板,一个镜像可以创建多个容器,可以将软件、项目、系统等打包为镜像让Docker 进行运行。通俗点镜像说类似于常见的 ISO 镜像文件
可以通过编写 Dockerfile 文件创建自定义镜像
容器(container):
Docker 利用容器来运行应用。容器是从镜像创建的运行实例,它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台
容器可以通过 docker commit 打包为镜像,同一个 image 可以创建多个 container
仓库:
下载镜像的地方,Docker 官方仓库为 dockerHub,仓库分为 公开仓库 和 私有仓库 两种形式。通俗点说类似于 Maven 仓库
运行基本流程:
1、用户是使用 Docker Client与 Docker Daemon 建立通信,并发送请求给后者
2、Docker Daemon 作为 Docker 架构中的主体部分,首先提供Docker Server的功能使其可以接受 Docker Client的请求
3、Docker Engine 执行 Docker 内部的一系列工作,每-项工作都是以一个Job的形式的存在
4、Job 的运行过程中,当需要容器镜像时,则从 Docker Registry 中下载镜像,并通过镜像管理驱动 Graph driver 将下载镜像以 Graph 的形式存储
5、当需要为 Docker 创建网络环境时,通过网络管理驱动 Network driver 创建并配置 Docker 容器网络环境
6、当需要限制 Docker 容器运行资源或执行用户指令等操作时,则通过Execdriver来完成
7、Libcontainer 是一项独立的容器管理包,Network driver以及Exec driver都是通过 Libcontainer 来实现具体对容器进行的操作
![image.png](https://cdn.nlark.com/yuque/0/2022/png/21405095/1657175167381-6caf2c2b-e41c-49f9-ac82-28afaccd7252.png#clientId=u7c93178a-9a50-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=707&id=uc716ff64&margin=%5Bobject%20Object%5D&name=image.png&originHeight=1060&originWidth=762&originalType=binary&ratio=1&rotation=0&showTitle=true&size=355056&status=done&style=stroke&taskId=u87921dad-4970-4b8b-84b6-f70c753d6f8&title=%E5%BA%95%E5%B1%82%E6%9E%B6%E6%9E%84%E7%A4%BA%E6%84%8F%E5%9B%BE&width=508 "底层架构示意图")