docker简介

容器

一种虚拟化的方案

操作系统级别的虚拟化

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

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

什么是Docker

将应用程序自动部署到容器
GO语言开源引擎

docker的目标

提供简单轻量的建模方式

职责的逻辑分离

快速高效的开发生命周期

鼓励使用面向服务的架构

docket的使用场景

  • 使用Docker容器开发,测试,部署服务
  • 创建隔离的运行环境
  • 搭建测试环境
  • 构建多用户的平台即服务(Paas)基础设施
  • 提供软件即服务(SaaS)应用程序
  • 高性能,超大规模的宿主机部署

虚拟机的缺点

  1. 资源占用多
  2. 冗余步骤多
  3. 启动慢

Linux 容器

Linux容器不是模拟一个完真的操作系统,而是对进程进行隔离。有了容器,就可将软件运行所需的所有资源打包到一个隔离的容器中,容器与虚拟机不同,不需要捆绑一整套操作系统,只需要软件工作所需的库资源和设置。系统因此而变得高效轻量并保证部署在任何环境中的软件都能始终如一的运行

Dockery依赖的Linux内核特性

Namespaces 命名空间
  编程语言
    
    封装 -》代码隔离
  操作系统
     
    系统资源的隔离
    进程,网络,文件系统。。。
     
     Linux内核实现命名空间的主要目标是实现轻量型虚拟化服务就是容器
     
     在同一命名空间的下的进程可以感受彼此的变化,而对其它命名空间的进程一无所知
     
- PID (Process ID) 进程隔离
- NET (Network) 管理网络接口
- IPC (InterProcess Communication) 管理跨进程通信的访问
- MNT (Mount) 管理挂载点
- UTS (Unix Timesharing System) 隔离内核和版本标识
Control groups (cgrioup)控制组

资源限制

优先级

资源计量

资源控制

Docker容器的能力

  • 文件系统隔离:每个容器都有自己的root文件系统
  • 进程隔离:每个容器都运行在自己的进程环境中
  • 网络隔离:容器间的虚拟网络接口和IP地址都是分开的
  • 资源隔离和分组:使用Cgroup将CPU和内存之类的资源独立分配给每个Docker容器
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值