Docker学习笔记

Docker

Docker是一个在单一控制主机上同时运行多虚拟单元(容器)的轻量级的虚拟化解决方案。容器使用内核cgroups和内核名字空间来进行隔离。

完全的虚拟化解决方案,例如:Xen、KVM、libvirt等,都是基于处理器来模拟一个完全的硬件环境,并且可以控制虚拟机。

Docker架构如下:

wKioL1UHmMvAglt6AAhNB9Zq9B0709.jpg

wKiom1UHl6zRBNtAAAKa0XbBdFg982.jpg

术语

cgroups:Control Groups是Linux内核的一个特性,cgroups允许将任务(进程)以及他们的子进程聚合或分割到分级的组中,以便对资源进行隔离。

镜像:专为Docker容器定制的镜像,只读层;

镜像名:镜像的名字,Docker命令中将会用到这个镜像名;

容器:一个运行的Docker镜像;

容器ID:Docker容器的ID,唯一,用于命令行;

Tag:镜像的标签,可自定义;

内核名字空间:内核中用于隔离资源(例如:网络、用户、进程等)的特性;

Docker Host Server:运行Docker守护进程的系统,并提供镜像和cgroups功能;

Registry:Docker镜像的远程仓库;

Repository:保存所有一个镜像所有版本的仓库地址;

Docker优势和局限性

优势:

1. 容器之间的应用程序和操作系统隔离;

2. 近乎本地的性能,Docker可以实时管理资源的分配;

3. 支持镜像多个版本;

4. 可以基于一个已经存在的镜像来制作新镜像;

5. Docker Hub允许通过公共和私有仓库来共享和存储镜像;

局限性:

1. 容器运行在宿主系统的内核中,并且不能使用不同的内核;

2. 目前guest OS只支持Linux系统;

3. Docker不是一个全虚拟化栈;

4. Docker容器的安全性取决于宿主系统的安全性;

容器驱动

Docker有不同的后端驱动来处理容器;

1. libcontainer

2. LXC

3. libvirt-lxc

存储驱动

1. vfs

2. devicemapper

3. btrfs

4. AUFS

你可能感兴趣的:(docker,处理器,局限性)