手记

docker拾遗-之再入坑

最近重新学习docker,好久不用,什么都是忘得差不多了,每天地铁看看视频,记记笔记,重新学习docker。

docker简介

什么是容器?

  • 一种虚拟化的方案

  • 操作系统级别的虚拟化

  • 只能运行在相同或相似内核的操作系统

  • 依赖于linux内核特性:Namespace和Cgroups(Control Group)

linux容器 VS 虚拟机

使用的容量更小

什么是docker?

  • 将应用程序自动部署到容器

  • GO语言开源引擎

  • 2013 dotCloud

  • 基于Apache 2.0开源授权协议发行

docker的目标

  1. 提供简单轻量的建模方式

  2. 职责的逻辑分离

  3. 快速高效的开发生命周期

  4. 鼓励使用面向服务的架构

docker的使用场景

  1. 使用docker容器开发测试,部署服务

  2. 创建隔离的运行环境

  3. 搭建测试环境

  4. 构建多用户的平台即服务(PaaS)基础设施

  5. 提供软件即服务(SaaS)应用程序

  6. 高性能、超大规模的宿主机部署

Docker容器相关技术

docker依赖的linux内核特性

  • NameSpaces命名空间

  • Control group (Cgroups)控制组

Namespace命名空间

编程语言

封装 -> 代码隔离

操作系统

系统资源的隔离

进程、网络、文件系统...

  • PID (Process ID) 进程隔离

  • NET (Network) 管理网络接口

  • IPC (InterProcess Communication) 管理跨进程通信的访问

  • MNT (Mount) 管理挂载点

  • UTS (Unix TimeSharing System) 隔离内核和版本标识

Control groups 控制组

  • 用来分配资源

  • 来源于google

  • Linux Kernel 2.6.24 @ 2007

  1. 资源限制

  2. 优先级设定

  3. 资源计量

  4. 资源控制

Docker容器的能力

  • 文件系统隔离: 每个容器的都有自己的root文件系统

  • 进程隔离: 每个容器都运行在自己的进程环境中

  • 网络隔离: 容器的虚拟网络接口和IP地址是分开的

  • 资源隔离和分组:使用Cgroups将CPU和内存之类的资源独立分配给每个Docker容器




作者:若与
链接:https://www.jianshu.com/p/3340aa0cbb6e


0人推荐
随时随地看视频
慕课网APP