Docker的介绍

Docker学习笔记

什么是容器

依托于linux内核的虚拟化技术

什么是Docker

能够把应用程序自动部署到容器的开源引擎

Docker的目标

创建软件程序可移植的轻量容器,让其可以在任何安装了Docker的机器上运行,而不用关心底层操作系统,类似于船舶使用的集装箱.

Docker的应用场景

Docker的基本组成部分

Docker Client客户端

Docker客户端/守护进程
C/S架构
Docker客户端对服务器的访问,既可以本地,也可以远程

Docker Daemon守护进程
Docker Image镜像

镜像,容器的基石,就好比容器的源代码,保存了用于启动容器的各种条件.
是一种层叠的只读文件系统,最底端是一个引导文件系统:bootfs,系统启动后,bootfs会被卸载.第二层是root文件系统:rootfs,可以是一种或者多种操作系统,在传统的linux引导过程中,rootfs会最先以只读的方式加载,引导完成和完整性检查后才切换到读写模式,但是在Docker中,rootfs只能是只读模式,Docker应用联合加载技术(一次加载多个文件系统,但是在外面看来只能看到一个文件系统),又会在root文件系统之上加载更多的只读文件系统.

Docker Container容器

通过镜像启动,只读文件系统加载完成之后,Docker会在最顶部加载一个可写文件系统

>写时复制(copy on write):

Docker Registry仓库

类似于git的github
docker公司目前提供了dockerhub

Docker的介绍_第1张图片
20151130181204.png

Docker在线演示地址https://www.docker.com/tryit

Docker容器相关技术简介

Docker依赖的Linux内核特性
Namespaces命名空间

编程语言:封装>代码隔离
操作系统:系统资源的隔离(进程,网络,文件系统....)
linux系统命名空间的主要目的之一就是为了实现轻量级虚拟化服务,也就是我们所说的容器.
Docker目前使用了五种命名空间

  • PID(Process ID) 进程隔离
  • NET(Network) 管理网络接口
  • IPC(InterProcess Communication) 管理跨进程通信的访问
  • MNT(Mount) 管理挂载点
  • UTS(Unix Timesharing System) 隔离内核和版本标识
control groups(cgroups)控制组

linux内核提供的一直可以记录,限制,隔离进程组所使用的物理资源的机制,最初是由google工程师提出,集成于Linux kernel 2.6.24@2007及以后的版本中
主要功能:

  • 资源限制
  • 优先级设定
  • 资源计量
  • 资源控制
这两个特性带给Docker容器的能力
  • 文件系统隔离:每个容器都有自己的root文件系统
  • 进程隔离:每个容器都运行在自己的进程环境中
  • 网络隔离:容器间的虚拟网络接口和IP地址都是分开的
  • 资源隔离和分组:使用cgroups将CPU和内存之类的资源独立分配给Docker容器

你可能感兴趣的:(Docker的介绍)