自动化运维、大数据、Docker

Docker简述

一、Docker的优势

1、更快速的交付和部署。

2、更高效的资源利用。

3、更轻松迁移和拓展。

4、更简单的更新管理。

 

二、Docker和虚拟机比较

1、Docker容器很快,启动和停止可以在秒级实现,这相比传统的虚拟机要快很多。

2、Docker容器对系统资源需求很少,一台主机可以同时运行数千个Docker容器。

3、Docker通过类似Git的操作来方便用户获取、分发和更新应用镜像。

4、Docker通过Dockerfile配置文件来支持灵活的自动创建和部署机制,提高工作效率

特性 容器 虚拟机

启动速度

秒级

分钟级

磁盘占用

一般为MB

一般为GB

性能

接近原生

弱于

系统支持量

单机支持数千个容器

一般几十个

隔离性

安全隔离

完全隔离

 

三、Docker核心概念

1、镜像

      镜像是创建Docker容器的基础,类似于虚拟机镜像,可以将它理解为一个面向Docker引擎的只读模板,包括文件系统。

 

2、容器

      Docker容器类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。可以把容器当做简易版的linux操作系统,以及运行在其中的应用程序打包而成的应用盒子。

      Docker镜像自身是只读的,容器从镜像启动的时候,Docker会在镜像的最上层创建一个可写层,镜像本身保持不变。

 

3、仓库

      Docker仓库类似于代码仓库,是Docker集中存放镜像文件的场所。

 

四、Docker的核心技术

      Docker底层依赖的核心技术主要包括Linux操作系统的命名空间(Namespaces)、控制组(Control Groups)、联合文件系统(Union File Systems)和Linux虚拟网络支持。

 

1、命名空间: 是Linux内核针对实现容器虚拟化而引入的一个强大特性。

      a、进程命名空间:  Linux通过命令空间管理进程号,对于同一进程,在不同的命名空间中,看到的进程号不相同,每个进程命名空间有一套自己的进程号管理方法。

 

      b、网络命名空间:   通过网络命名空间,可以实现网络隔离。一个网络命名空间为进程提供了一个完全独立的网络协议栈的视图。包括网络设备接口、IPV4和IPV6协议栈、IP路由表、防火墙规则,sockes等等。

 

      c、IPC命名空间:   

 

      d、挂载命名空间:  类似chroot,将一个进程放在一个特定的目录执行。挂载命名空间允许不同命名空间的进程看到的文件结构不同,这样每个命名空间中的进程看到的文件结构不同,这样每个命名空间中的进程所看到的文件目录彼此被隔离。

 

      e、UTS命名空间:    允许每个容器拥有独立的主机名和域名。从而可以虚拟出一个独立主机名和网络空间的环境。

 

      f、用户名命名空间:   每个容器可以有不同的用户和组id,也就是说可以在容器内使用特定的内部用户执行程序,而非本地系统上存在的用户。

 

2、控制组

 

 

3、联合文件系统

 

 

4、Docker网络实现

 

五、Docker的安全

Docker容器的安全性,很大程度上其实依赖于Linux系统自身,因此在评估Docker的安全性时,主要考虑下面几个方面:

a、Linux内核的命名空间机制提供的容器隔离安全。

b、Linux控制组机制对容器资源的控制能力安全。

c、Linux内核的能力机制所带来的操作权限安全。

d、Docker程序本身的抗攻击性。

e、其他安全增强机制(包括AppArmod、SElinux等)对容器安全性的影响。

赞(0) 打赏
蜷缩的蜗牛 , 版权所有丨如未注明 , 均为原创丨 转载请注明蜷缩的蜗牛 » Docker简述
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏