docker 基本概念
本章目标:了解docker的总体系统架构,了解docker镜像的构建,容器连接,深入处理数据卷,以及各种常用命令
- docker 系统架构
- docker 系统的主要组成部分主要由以下几个部分组成
- 守护进程,负责容器创建,运行,监控。负责镜像的构建和存储,其启动通过docker daemon.
- docker 客户端,其通过http协议与docker守护进程通信。当然也支持远程通信by tcp socket
- docker 寄存服务负责存储和发布镜像,默认DockerHub
- 底层技术
- docker 守护进程通过一个执行驱动程序来创建容器另一个就是联合文件系统UFS其由多个存储驱动之一支持。
- 内核功能cgroup 负责容器使用的资源,且负责冻结和解冻这两个docker parse的所需功能。
内核功能 namespaces 负责容器之间的隔离,确保系统的其他部分与容器的文件系统,主机名,用户,网络,和进程都是分开的,我觉得和vue的组件思想很像
- 周边技术
- docker 相当于提供了底层的技术,如何使用户更好的管理和使用就要考其他的技术。他们是docker技术的衍生,像koa框架,如何去更好用就要自己去扩展下包
- Swarm :docker 的集群方案,其可以将多个docker主机组合起来,使其资源能何为一体,用横向扩展的方式达到纵向扩展的效果。
- compose 其负责构建和运行多个docker容器所组成的应用程序的工具,主要用开发和测试,不适合使用生产环境。
- Machine 其可以在本地/远程资源上安装配置docker.
- Kitematic 其实macOS和windows的GUI
- docker Trusted Registry 其实一个企业内部解决方案,用于存储和管理docker镜像
- 问题以及其解决方案
- 网络连接==》 Weave ,Project Calico ,Overlay
- 服务发现==》 容器的ip是动态分配的,当容器启动,他需要发现与其通信的服务。Consul ,registrator,SkyDNS.
- 服务编排==》 对于大型的部署,每个新的容器都需要安排并监控和保持跟新,系统对故障容器进行启动,搬迁,停止等。谷歌kubernetes ,marathon