什么是Docker??

​​Docker是一个轻量级虚拟机,也是一种Linux容器,它突破了以往的沙盒技术,解放了应用部署,让PaaS的应用场景更为广泛。

docker是通过内核虚拟化技术((namespaces及cgroups等),KVM呢是通过硬件虚拟化技术,CPU支持的。)来提供容器的资源隔离与 安全保障等。

在非linux平台是没法使用docker的,因为他是基于内核技术来实现资源隔离和安全保障的。

由于dockers通过操作系统层的虚拟化实现隔离,所以docker容器在运行的时候,不需要类似虚拟机(VM)额外的操作系统开销,提高了资源的利用率。

我们知道openstack 的镜像传到glance ,那么docker是传在dockerhub,一个私有的地方,谁有权访问我就可以给它。

docker的组成

docker是一个传统的CS结构的架构:客户端服务器。BS是什么呢?浏览器和服务器模式

三个组件: 镜像(image) 、容器(container)、仓库(repository)。

docker能干什么?

1、简化配置

工作中有很多环境,比如测试环境,开发环境,性能测试,生产和预生产,环境不一致,配置不一致会导致上线失败,测试安装了一个python的依赖,线上没有,测试通过,上生产就开始报错。(不能导入某个模块,起不来了)。

docker可以简化配置,做好一个镜像,直接拿镜像就起得来。openstack也能干这事,saltstack也可以做这些事。

docker解决的不是openstack的问题,应该和RPM包进行对比或者saltstack来对比。

saltstack就可以简化环境,一条命令解决。

2、代码流水线管理

从开发环境直到生产环境,Docker为应用程序提供了始终一致的环境,因而简化了代码开发和部署流水线。 Docker映像不可改变的特性以及易于构建,可以帮助你实现从开发环境直到生产环境,应用程序的运行环境都不发生变化。

3、开发效率

开发人员入职第一天配环境,用docker镜像构建好,需要啥都装好,RUN起来就完事。

openstack也可以做,给个虚拟镜像就完事。给个IP地址,用户密码SSH上去就完事

4、应用隔离

虚拟机是完全隔离,docker只是一个隔离,只是没有占用资源

5、整合服务器

服务器可以跑多个容器来提高利用率,但是也可以其多个虚拟机进程

6、debug能力

docker开发想调试很难,虚拟机想怎么调都可以

7、多租户

openstack设计就是多租户,一个租户可以有多个用户

8、快速部署

在虚拟机出现之前,配置新的硬件资源需要数天。虚拟化将这个时间缩短到了几分钟。Docker更是缩短到了短短几秒钟,因为它只需要为这个过程创建容器,并不启动操作系统。正是这项支持性技术,促使谷歌和Facebook使用容器。docker是秒级,体积小,完胜openstack。

使用docker的几个理由:

1、技术储备

2、跟上潮流

3、符合当前业务需求

大多数都是第2个,很少说有业务需求的。

上一篇:hdu 2191 珍惜现在,感恩生活 多重背包入门题


下一篇:ecshop 后台 审核功能