1. 容器的概念

  • 一种虚拟化的解决方案

    • 与虚拟机所不同的是,虚拟机通过中间层,将一台或多台独立的机器虚拟运行于物理硬件之上;
    • 而容器是直接运行于操作系统内核之上的用户空间;
  • 基于上述,容器虚拟化也被称为操作系统虚拟化;
    • 由于依赖于操作系统的特性,因此容器只能运行与底层操作系统相同或相似的操作系统
  • 而 docker 使用的容器技术则是依赖于 Linux 内核特性:namespace 和 cgroups(control group)
    • 因此 docker 上只能运行 Linux 类型系统,而不能运行 windows 系统;

2. Linux 容器技术 vs 虚拟机技术

如下图示为二者的层次化的分别:

  • docker,占用更少的磁盘空间;

    • 使用虚拟机,不但依赖应用(App)和其依赖的库(bins/libs),还需要包含完整的操作系统(Guest OS),为了运行数 MB 的应用,却需要安装占用几个 GB 的操作系统;

3. docker

  • 将应用程序自动部署到容器的一种开源引擎,其使用 go 语言编写;
  • 提供简单轻量的建模方式;
  • 职责的逻辑分离;

使用场景:

  • 使用 docker 容器开发、测试、部署服务;
  • 创建隔离的运行环境;
  • 搭建测试环境;
  • 构建多用户的平台即服务(PaaS)基础设施
  • 提供软件即服务(SaaS)应用程序

4. docker 的基本组成

  • docker client:客户端; docker daemon:守护进程;

    • c/s 架构
  • docker image:镜像;
    • 镜像是容器的基石;
    • 层叠的只读文件系统
  • docker container:容器;
    • 通过镜像启动;
    • 启动和执行;
    • 写时复制(copy on write)
  • docker registry:仓库
    • 公有/私有
    • Docker Hub

5. namespace/cgroups

  • namespace

    • 对于编程语言,实现封装时的代码隔离;
    • 对于操作系统,则可实现对系统资源的隔离,系统资源包括:进程、网络、文件系统…
    • namespace 包涵一下几种:
      • PID(process id),进程隔离;
      • NET(network),管理网络接口
      • IPC(InterProcess Communication),管理跨进程通信的访问;
      • MNT(Mount),管理挂载点;
      • UTS(Unix Timesharing System),隔离内核和版本标识;
  • Control groups
    • 使用 control groups 对隔离的资源进行管理;
    • 用来分配资源,实现了:资源限制,优先级设定,资源计量,资源控制;

docker 第一课 —— 从容器到 docker的更多相关文章

  1. Docker入门 第一课 --.Net Core 使用Docker全程记录

    微服务架构无疑是当前最火热的开发架构,而Docker作为微服务架构的首选工具,是我们必须要了解掌握的. 我通过一天的时间,网上查文档,了解基础概念,安装Docker,试验Docker命令,通过Dock ...

  2. 认识容器和Docker(一)

    前言: 这句话应该是开发人员经常挂在嘴边的吧! “在我的机器上是正常工作的啊,MD,怎么到你这就不行了?” 开发人员就会联想到: 1. 肯定是你环境有问题: 2. 要么就是你个傻*不会用吧: 带着这句 ...

  3. Docker学习之3——容器

    容器(Container) 容器介绍: docker是通过容器来运行业务的,就像运行一个kvm虚拟机是一样的.容器其实就是从镜像创建的一个实例. 我们可以对容器进行增删改查,容器之间也是相互隔离的.和 ...

  4. docker常用命令与容器创建

    ################docker安装##################### Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE. 社区版是免费提供给个 ...

  5. 【docker专栏7】容器自启动与守护进程停止后容器保活

    本文为大家介绍容器自启动以及docker 守护进程挂掉或者docker升级的情况下,如何保证容器服务的正常运行.主要包含三个部分 一.守护进程开机自启 在我们安装docker的时候,介绍过启动dock ...

  6. Docker自学纪实(二)Docker基本操作

    安装docker 以CentOS7为例: 安装:yum -y install docker 启动:systemctl start docker 设置开机自启:systemctl enable dock ...

  7. 一起玩"Docker"之1——Ubuntu配置安装Docker运行环境并安装(Ubuntu、Centos)镜像

    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Li ...

  8. 测试docker不同主机间容器互相访问

    测试服务器(centos6.5):192.168.16.70 网卡:eth0192.168.16.74 网卡:eth0第一步,分别在2台机器执行: yum install docker service ...

  9. 初识Docker和Windows Server容器

    概览 伴随着Windows Server 2016 Technical Preview 3 (TP3)版本的发布,微软首次提供了Windows平台下地原生容器.它集成了Docker对Windows S ...

随机推荐

  1. ADB高级应用

    ADB高级应用 一.利用无线来查看adb shell > adb tcpip 5555 连接: > adb connect IP:5555 见后文<调试注意事项> 二.模拟按键 ...

  2. swift 创建第一个UIAlertView 和UIActionSheet

    //创建 UIActionSheet //一定要指明类型.不编译不通过 func ActionSheet(sender:UITapGestureRecognizer)     {         le ...

  3. 虚拟局域网(VLAN)技术在企业网管理中的应用

    虚拟局域网(VLAN)技术在企业网管理中的应用 1.VLAN介绍     所谓VLAN 是指处于不同物理位置的节点根据需要组成不同的逻辑子网,即一个VLAN 就是一个逻辑广播域,它可以覆盖多个网络设备 ...

  4. JS原生方法被覆盖后的恢复办法

    alert 被覆盖 今天装修博客园,调试了下JS代码发现 alert() 方法被官方覆盖了,查看源码得知 alert 的功能被替换成了 console.log. 恢复 var _frame = doc ...

  5. 洛谷 P3371 【模板】单源最短路径

    P3371 [模板]单源最短路径 题目描述 如题,给出一个有向图,请输出从某一点出发到所有点的最短路径长度. 输入输出格式 输入格式: 第一行包含三个整数N.M.S,分别表示点的个数.有向边的个数.出 ...

  6. Python批量重命名指定目录下文件的两种方法

    #法一 import os path = "C://Python34//" for file in os.listdir(path): if os.path.isfile(os.p ...

  7. Math的三个取整方法。

    Math类中提供了三个与取整有关的方法:ceil.floor.round,这些方法的作用与它们的英文名称的含义相对应 1.ceil的英文意义是天花板,该方法就表示向上取整,所以,Math.ceil(1 ...

  8. Spark MLlib架构解析(含分类算法、回归算法、聚类算法和协同过滤)

    Spark MLlib架构解析 MLlib的底层基础解析 MLlib的算法库分析 分类算法 回归算法 聚类算法 协同过滤 MLlib的实用程序分析 从架构图可以看出MLlib主要包含三个部分: 底层基 ...

  9. [ Eclipse ] [ Problem ] Eclipse 無法開啟問題

    因為 Eclipse 在設定環境的過程掛掉太多次,擷取一些網路上優秀的文章當作備份 http://www.ewdna.com/2013/12/Eclipse-Loading-Workbench.htm ...

  10. dataguard主备延迟多长时间的查询方法

    select value from v$dataguard_stats where name='apply lag';