设为首页 收藏本站
查看: 1249|回复: 0

[经验分享] 初识Docker

[复制链接]

尚未签到

发表于 2015-10-13 09:10:28 | 显示全部楼层 |阅读模式
Docker的目标:实现轻量级的操作系统虚拟化解决方案。Docker的基础:LXC(linux容器) DSC0000.jpg
DSC0001.jpg

  • 不需要实际的客户操作系统,而向上层应用提供实质性的虚拟化服务。(要求Host OS必须为Linux系统)
  • docker是,将应用自动部署到容器上的引擎(源码 : https://github.com/docker/docker)
Docker的目标:

  • 提供简单轻量的建模方式


    • 应用程序docker化:几分钟,docker上应用程序启动:1秒
    • 去除了管理程序的开销,docker应用程序拥有较高的性能
    • 同一台宿主机中可运行更多的容器,使得系统资源得到充分利用。

  • 指责的逻辑分离


    • 开发者只需关心容器中运行的应用程序,而运维人员只需要管理docker就好了。

  • 快速高效的开发生命周期


    • 缩短开发-测试-部署-上线运行的周期。
    • 具备高可移植性,在容器中开发,以容器的形式交付、分发(大幅度削减了部署运维的开销)。

  • 鼓励使用面向服务的架构


    • 推荐单个容器只运行一个应用程序或进程(高内聚低耦合)

Docker应用场景:

  • 使用Docker容器开发,测试,部署应用程序。
  • 创建隔离的运行环境


    • 很多企业中,同一应用的不同版本可能服务于不同的用户,docker很容易创建不同的环境来运行不同的应用。

  • 搭建测试环境


    • 因为其轻量化,很容易在本地搭建对于不同系统环境的测试环境,甚至集群部署的测试。

  • 构建多用户的平台即服务的基础设施
  • 提供软件即服务的应用程序
  • 高性能、超大规模的宿主机集群
Docker的基本组成:Docker Client客户端Docker Daemon守护进程Docker Image镜像Docker Container容器Docker Registry仓库 DSC0002.jpg


  • Docker客户端/守护进程


    • C/S架构

  • Docker image


    • 容器基于镜像启动运行,镜像就是容器的源代码。
    • 层叠的只读文件系统


      • 引导文件系统(bootfs),用户几乎永远不会和引导文件系统有交互,当一个容器被创建后它将会被移进内存,而同时引导文件系统将会被卸载。
      • 载,当引导结束操作系统加载完毕后,才会被切换成读写模式。但在docker中将永远是只读模式。
      • 联合加载(union mount),同时加载多个只读文件系统,但是在外部看来只有一个文件系统。





  • Docker Container(执行单元)


    • 容器通过镜像启动
    • 写值复制

  • Docker Registry


    • Docker使用仓库来保存用户构建的镜像
    • 公有:Docker Hub
    • 私有

Docker依赖Linux内核特性:

  • namespace


    • 编程语言(封装->代码隔离)
    • 操作系统(系统资源的隔离->进程,网络,文件系统……)


      • PID:进程隔离
      • NET:管理网络接口
      • IPC:管理跨进程通信的访问
      • MNT:管理挂载点
      • UTS:隔离内核和版本标识


  • control groups




    • linux内核提供,可以限制,记录,隔离进程组所使用的物力资源的机制。
    • 2007年google提出并整合入linux kernel 2.6.24


      • 资源限制
      • 优先级设定
      • 资源计量
      • 资源控制


  • 给予docker能力


    • 文件系统隔离:每个容器都有自己的root文件系统
    • 进程隔离:每个容器都运行在自己的进程环境中
    • 网络隔离:容器间网络地址和端口都是分开的
    • 资源隔离和分组:CPU和内存资源的独立分配

Ubuntu中安装:

  • 安装前检查


    • 内核版本(docker只支持64位版本)


      • $ uname -a

    • 检查 Device Mapper(存储驱动)


      • ls -l /sys/class/misc/device-mapper


  • Ubuntu维护版本(较老)


    • $ sudo apt-get install docker.io
    • $ source /etc/bash_completion.d/docker.io

  • Docker维护版本


    • 安装:curl


      • sudo apt-get install -y curl

    • 安装Docker


      • curl -sSL https://get.docker.com/ubuntu/ | sudo sh


Windows中安装:

  • Boot2Docker


    • Boot2Docker Linux ISO


      • https://github.com/boot2docker/boot2docker

    • VirtualBox
    • MSYS-git
    • 管理工具


OS X中安装(与Windows类似)         版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-126121-1-1.html 上篇帖子: docker mysql镜像安装和使用 下篇帖子: Docker libcontainer unifies Linux container powers
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表