docker入门

jed杨 · · 369 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

1 什么是Linux的容器(LXC--LinuX Container)?

1.1虚拟化与容器的区别

image.png

1.2 容器发展之路

容器技术最早出现在FreeBSD上叫做 jail,将一个进程放入jail中运行,不管这个进程在其中发生怎样的错误都不会影响到系统上其他进程的运行。    后来,jail技术在Linux中的实现叫做vserver,vserver所实现的功能体现为chroot以及namespaces实现资源的隔离。    容器技术出现的主要目的是为了"资源隔离"

image.png

Linux在内核中通过namespaces,原生支持6种资源隔离,并且直接通过系统调用对外进行输出。另外,仅靠namespaces,就可以完成容器的功能吗?对,我们还需要靠CCgroups 控制每个namespace中的资源分配。


      vserver技术的chroot与namespace、cgroup已经可以实现完全的隔离了,容器技术已经成熟了,但是为什么当时没有流行起来呢?

        隔离的工具chroot与namespace、cgroup是有了,但是要把这些工具组合使用需要非常深厚的代码开发的功底才能实现。这限制了他的使用人群。直到LXC技术出现。

1.3 LXC到Docker的历史

LXC,将原来需要手工编码实现的容器技术,进行了封装。实现了,更加方便、快速的容器创建及管理的技术。通过固有“模板”,安装并启动容器。将远程的程序包下载到本地,安装并创建好我们需要的容器。

确实,LXC已经很大程度上降低了容器管理的难度,但是依然使用一些弊端。有些时候可能需要自定制模板,以及使用LXC中自带的模板,以及大规模创建及复制依然比较麻烦。所以,很难大规模的应用。

所以,2013年出现了Docker技术。Docker是在LXC基础上,使用GoLang二次开发的封装版。


1.4 Doocker体系结构

image.png

4

作者:wwwoldguocom

链接:https://www.jianshu.com/p/9c3f3b38afea

来源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:jed杨

查看原文:docker入门

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

369 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传