docker笔记
一·docker简介
1.什么是docker?
- 与2013年初,由dotCloud公司使用go语言编写的C/S程序
- 基于Apache 2.0开源授权协议
- github:http://github.com/docker/docker
- 一种容器技术--->虚拟化的一种方案
2.什么是容器?
- 一种虚拟化方案--->操作系统级别的虚拟化
3.什么是系统虚拟化?
- 运行相同或相似内核的操作系统--->系统的内核
4.依赖系统什么内核?
- linux内核之上--->Namespace和Cgroups(Control Group)
5.docker内是什么?
- 一种linux系统的虚拟环境--->容器
6.docker可以运行什么?
- 所有基于linux系统环境的程序
7.docker外是什么?
- 可以在不同系统平台运行--->win,linux
8.生产中怎么使用docker?
- 将应用程序自动部署到容器
9.docker特点?
- 在虚拟化容器中,有一个应用程序部署引擎
- 提供一个快速轻量环境,可以运行应用程序,
- 可以高效的从开发环境部署到测试&生产环境
- 解决了开发环境与测试&生产环境的一致性
10.docker的目标?
- 简单:提供简单轻量的建模方式
- 用户只要几分钟就可以将自己的程序docker化
- 启动,不到一秒程序即可运行--->切换快
- 解耦:职责的逻辑分离
- 开发关心--->容器内程序
- 运维关心--->容器的管理
- 移植:快速高效的开发生命周期
- 缩短了开发、测试、部署之间的周期
- 架构:鼓励使用面向服务的架构
- 推荐一个容器只运行单个程序或者进程
- 即鼓励分布式架构--->高内聚,低耦合
11.docker使用场景?
- 阶段:使用docker容器开发、测试、部署服务。
- 环境:创建隔离的运行环境
- PaaS:构建多用户的平台即服务基础设施
- SaaS:提供软件即服务应用程序
- 宿主:高性能、超大规模的宿主机部署
二·Docker组成
1.Docker基本组成
- 客户端:Docker Client
- 守护进程:Docker Deamon
- 镜像:Docker Image
- 容器:Docker Container
- 仓库:Docker Registry
2.Docker客户端/守护进程
- C/S架构:客户端(client界面)<--->服务端(守护进程)
- 访问:可以在本地/远程访问
Docker C/S架构示意图
3.Docker Image镜像
- 作用:容器的基石
- 原理:层叠的只读文件系统
- 技术:联合加载(union mount),一次加载多个文件系统
- 概念:被联合加载的多个文件系统,称为镜像
层叠的只读文件系统
文件系统 | 层级&功能说明 |
---|---|
add Apache | 上层:多种文件系统被联合加载 |
add emacs | 上层:多种文件系统被联合加载 |
rootfs | 第二层:root文件系统(CentOS&Ubuntu),永远只读方式加载 |
bootfs | 最底层:引导文件系统,容器启动后会移至内存,该文件系统被卸载 |