关于Docker的学习资料 - 01 - Docker简介

本文转载自 http://blog.csdn.net/hylexus/article/details/52834558

仅用于自我收藏学习,不做商业和推广用途

1 docker简介

docker是一个能够把开发的应用程序部署到容器的开源引擎。

具体的其他信息就不多说了,有兴趣请看一下链接:

docker-官方文档 
百度百科-docker

2 docker组件

2.1 客户端和服务端

docker-C/S架构

如上图所示,docker是一个C/S架构的程序。docker客户端只需向docker服务端守护进程发出请求并等待返回结果即可。 
docker提供了命令行工具docker,和诸多的RestAPI。 
当然,客户端和服务端不一定要在同一个主机上。

2.2 镜像

镜像,这是个抽象又满天飞的概念。 
在docker里,镜像(image)和容器(container)关系非常紧密。image就相当于面向对象中的类,container就类似于对象了。 
也就是说镜像是容器的模板,容器是镜像的实例。 
也有人这么说:镜像是容器的源代码。

2.3 Registry

docker用Registry来保存创建的镜像。Registry分为私有和公有两类。 
公有的Registry如DockerHub、DaoCloud、网易雀巢等。

2.4 容器

容器是:

  • 镜像的实例
  • 运行环境
  • 虚拟子系统
  • 沙箱/沙盒

3 docker的特点

  • 文件系统隔离 
    • 每个容器都有自己的root文件系统
  • 进程隔离 
    • 每个容器都运行在自己的进行环境中
  • 网络隔离 
    • 容器间的虚拟网络接口和IP地址是分开的
  • 资源隔离 
    • 使用CGroups将CPU和内存资源分配给每个docker容器
  • 写时复制 
    • 文件系统都是通过写时复制创建的,文件系统是分层的。占用空间更少。

4 和传统虚拟化技术的对比

比较项目 传统虚拟化 docker虚拟化
创建速度 很慢 很快
性能影响 通过对硬件的模拟,增加了系统调用链路的环节。有性能损耗。 共享内核,影响甚微
资源消耗 很大 很小,单个机器可以轻易创建多个容器
兼容性 支持Linux,Mac,Windows等系统 仅支持内核所支持的系统

猜你喜欢

转载自goalietang.iteye.com/blog/2413354
今日推荐