-
首页
- 正文
容器技术的几个事实
- 容器技术的兴起起源于PaaS技术的普及
- Docker公司发布的Docker项目具有里程碑式的意义
- Docker项目通过"容器镜像",解决了应用打包这个根本性难题
什么是容器
- 容器就是一种沙盒技术,把你的应用"装起来",让其能够方便的搬来搬去
进程
- 一旦程序被执行起来,它就从磁盘上的二进制文件,变成了计算机内存中的数据,寄存器里的值,
- 堆栈中的指令,被打开的文件,以及各种设备的状态信息的一个集合.
- 像这样一个程序运行起来后的计算机执行环境的总和,就是进程
进程的动态表现
- 进程的静态表现就是程序,平时都安安静静的待在磁盘上
- 一旦运行起来,它就变成了计算机里的数据和状态的总和,这就是它的动态表现
容器的核心功能
- 通过约束和修改进程的动态表现,为期创造出一个"边界"
容器的特性
- 容器内的第一个进程的PID是1,其实是对被隔离的应用的进程空间做了手脚,
- 使得这些进程只能看到重新计算过的进程编号,比如PID=1,可实际上,
- 他们在宿主机的操作系统里,就是一个普通的进程
容器名称空间Namespace
- Mount 挂载文件系统
- UTS 主机名和域名
- IPC 进程间通信
- Network 网络
- User 用户
- PID 进程ID
Docker并不是"轻量级"虚拟化技术
- 跟真实存在的虚拟机不同,在使用Docker时,并没有一个真正的"Docker容器"运行在宿主机里面
- Docker项目帮助用户启动的,还是原来的应用进程,只不过在创建这些进程的时候,
- Docker为他们加上了各种各样的Namespace参数,
- 这时这些进程就会觉得自己是各PID Namespace里的第一号进程
- 只能看到各自Mount Namespace里挂载的目录和文件,只能访问到各自Network Namespace里的网路设备
- 仿佛在一个个"容器"里面,与世隔绝