• Docker技术使用场景主要特性等相关资源整理
  • OpenStack与Docker集成:使用openstack管理docker
  • Docker的隔离性和安全性问题
  • docker使用的技术之Container内核原理介绍
  • Docker详细的应用与实践架构举例说明
  • ​基于Docker的大数据开发实践
  • ​docker之轻量虚拟化技术——docker实战分享
  • 什么是docker?Docker技术详细介绍
  • 基于Docker容器的云计算平台搭建实战
  • docker和VM虚拟机的区别以及如何用docker搭建基础设施
  • ​Docker容器术语以及docker的特点
  • Docker & Docker Hub
  • Introduction to Swarm, a Docker-native clustering system
  • Docker、Kubernetes、Neutron中的网络简介
  • ​James Turnbull:《The Docker Book》
  • Docker on AWS:Running Containers in the Cloud
  • Introduction docker Container Security
  • docker应用之利用Docker构建自动化运维
  • Docker基本原理简介和详细安装步骤介绍
  • Docker 基础用法和常用命令及选项介绍
  • Docker 端口映射,端口绑定操作介绍
  • Docker 四种网络模式及网络配置详细介绍
  • docker下通过Dockerfile指令构建镜像的指令选项介绍
  • ​Docker 容器数据管理,链接容器,构建私有库
  • Docker容器分析----好处和缺点介绍
  • 如何实现 coreos 下Docker 与分布式数据库结合
  • 应对 Docker 网络功能难题的挑战与思考
  • Docker着手将容器部署到私有云与公有云
  • 为现在和未来改善Docker安全
  • Docker容器与企业存储的结合思考
  • Docker监控以及cAdvisor和Prometheus监控工具的对比
  • ​有关Docker的八个令人难以置信的事实
  • ​部署 Docker 前必须问自己的四个问题
  • 程序猿,千万别说你不了解Docker!
  • 将要改变IT世界的的docker技术是什么?
  • Docker支持更深入的容器日志分析
  • Docker宣布支持Windows 10和Azure Windows Server
  • Docker 1.12.0到底有哪些不同之处
  • 云计算之Docker容器技术如何落地?
  • Docker v1.12.0-rc5 普通版实验版本下载,高级容器引擎
  • 针对Docker容器的监控指标
  • ​Docker 的步伐:DevOps 与 OS 化
  • 八个问题帮你快速了解Docker
  • ​什么是Docker以及docker的 诞生技术演进
  • ​Docker v1.12.1-rc1各种版本发布下载,高级容器引擎
  • ​Docker 1.12.0 改进了服务的负载均衡参数
  • Windows下Docker应用部署相关问题详解
  • Docker1.12 引擎使用体验 ​
  • Docker官方镜像将会使用Alpine Linux替换Ubuntu
  • ​Windows Server 2016提供Docker原生运行的企业级支持
  • ​传统应用的docker化迁移
  • Docker携手Windows Server
  • Docker扁平化网络设计与实现
  • Plesk 中操作和设置 Docker 容器
  • 如何通过 Docker 在 Linux 上托管 .NET Core
  • Docker 1.12.4应用容器引擎发布及下载地址
  • Docker v1.13.0 应用容器引擎正式版发布及下载地址
  • docker源码分析之容器日志处理与log-driver实现
  • 如何在win7,win8下面启动docker
  • win7,win8安装Docker具体过程
  • win7, win8安装docker需要了解的概念
  • win7,win8安装docker的依赖条件
  • Docker Toolbox 介绍
  • Arch下面安装启动及删除docker介绍
  • Debian 7(Wheezy)下面如何安装docker
  • Debian 8(Jessie )下面如何安装docker
  • 红帽RHEL下如何删除docker详细步骤介绍
  • 红帽RHEL下面设置docker服务自动启动
  • linux下不使用sudo命令执行docker的操作步骤
  • 红帽redhat下通过脚本和yum安装docker容器引擎的详细步骤
  • 红帽RHEL下安装docker依赖性检查
  • Ubuntu Vivid 15.04 下面安装docker的详细步骤
  • Ubuntu Trusty 14.04 (LTS) 下面安装docker及依赖关系检查
  • Ubuntu Raring 13.04 和 Saucy 13.10 (64 bit)下面安装docker
  • Ubuntu Precise 12.04 (LTS) (64-bit)下面安装docker
  • Docker支持的安装方式
  • 通过docker ps命令检查运行中的docker镜像
  • 关于docker入门教程
  • 通过docker search命令搜索可用docker镜像
  • 在docker容器中运行hello world!
  • 在docker容器中通过apt-get安装新的程序
  • 通过docker commit命令保存对docker容器的修改
  • 通过docker run命令运行新的docker镜像
  • 准备学习docker: docker version命令查看版本
  • 什么是Docker?Docker通常用于如下场景
  •  
    当前位置:  教程>docker中文入门学习手册

    ​docker之轻量虚拟化技术——docker实战分享

     
    分享到:
        发布时间:2017-2-20  


        本文导语: 轻量虚拟化技术——docker实战分享纲要一、轻量虚拟化技术• 是什么?• 涉及到哪些技术和知识?• 使用领域二、BAE与docker•docker是什么?•BAE为什么选择docker?•BAE是如何使用docker的?三、docker的发展轻量虚拟化技术是什么...

    轻量虚拟化技术——docker实战分享

    纲要
    一、轻量虚拟化技术
    • 是什么?
    • 涉及到哪些技术和知识?
    • 使用领域
    二、BAE与docker
    •docker是什么?
    •BAE为什么选择docker?
    •BAE是如何使用docker的?
    三、docker的发展


    轻量虚拟化技术是什么?
    • 以Linux进程的视角来看
    • 进程运行的时候,周边的环境和资源有哪些?
    • Linux内核
    文件系统
    • 网络系统
    PIDUIDIPC等资源
    内存CPU磁盘等资源
    其它
    • 每个进程的看到的周边环境都一样
    • 所有进程共享这些资源

    • 技术发展过程中,产生了这样的需求
    • 资源隔离:不同进程,希望有自己独立的周边环境
    资源限制限制某些进程所能使用的资源
    • 能进一步对一组进程进行上述隔离和限制

    • 需求总结为:
    • 为一组进程
    • 分配独立的运行环境
    • 文件系统
    • 网络系统
    • PID、UID、UTS、mount、IPC空间
    • 并能对它们能使用的资源从总体上进行限制
    • 内存
    • CPU
    • 网络流量
    • 磁盘空间
    • 磁盘读写频率
    • 最好还能防止进程组之间互相干扰

    • 轻量虚拟化,就是用来实现上述需求的技术
    • 满足上述限制条件的进程组,叫做“轻量虚拟 机”,或者 Container
    wikipedia 定义
    http://en.wikipedia.org/wiki/Operating_system- level_virtualizatio
    • 感性的认识

    轻量虚拟化技术--相关技术和开源项目
    底层技术:
    namespace/cgroups/iptables/chroot/tc/quota
    • veth
    union fs(AUFS)
    • container管理
    LXC/libvirt
    安全相关
    • grsec/apparmor/SELinux
    高级
    • docker/warden/Imctfy/openVZ

    轻量虚拟化技术--适用领域
    • 在一个资源隔离、受限的环境中执行任务
    • 将一个执行环境整体迁移复制
    • 运行不安全的代码

    BAE与docker--docker是什么?
    • 轻量虚拟机的整体解决方案
    接口清晰、使用简单
    • 竞品对比
    • warden
    • lmctfy

    BAE与docker--BAE是什么?
    • http://developer.baidu.com
    百度面向开发者PAAS平台
    • BAE2.0:基于沙盒技术的资源共享型PAAS平台
    • BAE3.0:基于Container技术的资源独享性PAAS平台

    BAE与docker--BAE为什么选择?
    • 传统PAAS平台的困境
    • 通过沙盒技术来实现资源隔离与资源限制
    • 平台的开发和维护成本高
    • 诸多限制,学习成本高
    应用的迁移和开发成本高

    •Container的出现带来了光明
    • 干掉沙盒;通过Container技术在外层进行资 源隔离与限制
    • 无任何语言层面的限制,开发者学习成本显著降低
    • 支持新的编程语极其简单,平台开发和维护成本降低
    • 业界趋势:新兴PAAS平台纷纷选择Container
    • cloudfoudry
    openshift
    heroku
    dotcloud
    • appfog
    activestate

    • BAE2.0是一种基于沙盒技术的PAAS
    • 我们也深受传统PAAS平台的困扰
    • 注意到Container技术,开始前期的调研和摸索

    • 首先和公司内部虚拟化团队合作摸索了一套方案
    openstack + libvirt
    • 功能上能满足基本需求
    • 问题
    • 没有考虑到最重要的一个需求:
    • 需要频繁的创建和删除Container
    • 要求创建和删除Container能在几秒内完成
    • 实际创建Container要15秒以上,无法接受
    • 对代码质量没有足够信心
    • 缺少后续技术支持
    cloudfoundry的warden
    ruby
    • dea与warden耦合太紧
    社区活跃度不够
    • 一次偶然机会,与docker布道师 Jorome Petazzoni 的交流
    • 对docker的评估
    • 功能上满足主要需求
    • 强悍:虚拟机的快速创建和删 除能力
    • 强悍: 增量式的镜像管理能力
    • 代码简单易读,出问题有信心己可以搞定
    • 有dotcloud公司支持,社区活跃 度高,看好它的未来

    BAE与docker--如何使用?
    架构上的主要工作
    • 与我们自己的系统整合
    • 功能上的主要工作
    • Docker的资源隔离功能基本满足需求
    • 要解决的主要问题
    • 更好的资源限制
    • 更全面的安全限制
    • 技术上的一些判断和选择:
    • 果断选择ubuntu系统
    • 实现类似deang的agent模块;
    • 合理的抽象,将docker作为“虚拟机管理”的一种 backend实现;(一旦docker出现不可控的风险,我 还可以切换到其它方案上)
    • 解决宿主机对container的控制问题
    • 刚开始使用 ssh
    • 后改为 wsh
    • 功能完善:资源限制
    • 内存
    • CPU
    • 磁盘空间
    • 磁盘读写
    • 网络带宽
    setrlimit

    BAE与docker--如何使用docker?
    • 功能完善:安全限制
    • grsec:封堵内核漏洞
    • apparmor:对container内部的能力进行限制
    • LXC自身的安全设置
    • lxc.drop_capabilities
    • lxc.
    • 严格的iptables规则
    • 账号权限
    • 用户代码仅能使用普通账号
    root 随机密码
    • 禁止 root 登录
    • 恶意进程扫描
    网络访问日志记录

    • docker私有仓库,解决镜像管理问题
    • 遇到的一些问题
    • docker server重启后, container挂掉
    • 我们的patchmerge到主干
    • 压力情况下的不稳定
    • ssh 远程执行命令不稳定
    并发情况下iptables 偶尔会失败
    • 删除container后会留下垃圾
    • 垃圾检测和清除脚本
    • Docker server创建的线程过多

    docker的发展——活跃的社区
    Github GO语言活跃度排名第一

    docker的发展——逐步繁荣的生态圈
    CoreOS
    Yandex -- Cocaine
    • 与redhat的合作
    • libvirt
    • SELinux
    device-mapped filesystem
    • 最新版OpenStack Havana 增加对docker的原生支持

    docker的发展——待解决的主要问题
    • 安全
    user namespace来解决root权限问题
    • SELinux增强安全性
    • 支持更多的Linux发行版,目前仅支持 ubuntu
    • 支持更多的架构,目前仅支持x86-64

    参考资料
    •http://www.infoq.com/articles/docker-containers
    •http://en.wikipedia.org/wiki/Operating_system-level_virtualization
    •http://en.wikipedia.org/wiki/LXC
    •http://en.wikipedia.org/wiki/Cgroups
    •http://en.wikipedia.org/wiki/Linux_Containers
    •http://libvirt.org/
    •http://linuxcontainers.org/
    https://wiki.ubuntu.com/LxcSecurity
    •http://lwn.net/articles/236038/
    •http://openvz.org/Main_Page
    •http://aufs.sourceforge.net/
    •http://blog.docker.io/2013/08/containers-docker-how-secure-are-they/


    • 本站(WWW.169IT.COM)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
      本站(WWW.169IT.COM)站内文章除注明原创外,均为转载,整理或搜集自网络.欢迎任何形式的转载,转载请注明出处.
      转载请注明:文章转载自:[169IT-IT技术资讯]
      本文标题:​docker之轻量虚拟化技术——docker实战分享
    相关文章推荐:


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2017,169IT.COM,E-mail:www_169it_com#163.com(请将#改为@)

    浙ICP备11055608号