• 欢迎访问蜷缩的蜗牛博客 蜷缩的蜗牛
  • 微信搜索: 蜷缩的蜗牛 | 联系站长 kbsonlong@qq.com
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

Docker简述

Docker 蜷缩的蜗牛 1年前 (2017-07-10) 14次浏览 已收录 0个评论

一、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 等)对容器安全性的影响。


蜷缩的蜗牛 , 版权所有丨如未注明 , 均为原创丨 转载请注明Docker 简述
喜欢 (0)
[]
分享 (0)

您必须 登录 才能发表评论!