目录
1 Docker简介
2 Docker体系结构
3 Docker内部组件参考资料
· 李振良Docker
1 Docker简介
1.1 Docker概述
Docker是一个开源的应用容器引擎,使用Go语言开发,基于Linux内核的cgroup,namespace,Union Fs等技术,对应用进程进行封装隔离,并且独立与宿主机与其他进程,这种运行时封装的状态称为容器。
Docker理念是将应用及依赖包打包到一个可移植的容器中,可发布到任意Linux发行版Docker引擎上,使用沙箱机制运行程序,程序之间相互隔离。
1.2 虚拟机与容器区别

图 1-1 虚拟机与容器区别 图示

图 1-2 虚拟机与容器区别 对比
1.3 应用背景

图 1-3 应用场景
2 Docker体系结构

图 2-1 Docker体系结构

图 2-2 Docker体系结构(官网)
Docker客户端执行命令,Docker主机收到命令后,调用守护进程。若是拉取镜像操作,先从本地仓库拉取,没有的话再去Docker 仓库拉取。通过镜像即可启动容器。
3 Docker内部组件

图 3-1 Docker内部组件
· 命名空间
Docker有自己的网络IP、进程、文件系统等,看不到宿主机或者其他容器中的进程,隔离作用是命名空间起的作用。

图 3-2 Docker内部进程示例
4 镜像管理
4.1 镜像概述

图 4-1 镜像概述
4.2 镜像与容器联系

图 4-2 镜像与容器联系
4.3 存储驱动
存储驱动管理Docker容器的本地存储空间。一般设置为overlay2

图 4-3 常见存储驱动
4.4 镜像管理命令

图 4-4 镜像管理指令
5 容器管理
5.1 创建容器常用选项

图 5-1
创建容器常用选项
5.2 管理容器常用命令

图 5-2 管理容器常用命令
6 管理应用程序数据
6.1 Docker主机数据挂载到容器的方式
为避免数据随着容器的关闭而丢失,提供容器数据持久化方式。

图 6-1
Docker主机数据挂载到容器的方式
6.2 Volume

图 6-2 Volume
多个容器可以使用同一个数据卷实现数据的共享。
6.3 Bind Mounts

图 6-3 Bind Mounts
7 Dockerfile
7.1 常用指令
每个仓库中都包含了一个名为Dockerfile的文件。Dockerfile是一个纯文本文件,其中描述了如何将应用构建到Docker镜像中。

图 7-1 常用指令
7.2 示例

图 7-2 示例Dockerfile文件
8 镜像仓库
8.1 搭建私有镜像仓库

图 8-1 搭建私有镜像仓库

图 8-2 私有镜像仓库管理
8.2 Docker Hub的使用

图 8-3 Docker Hub的使用