什么是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个,很少说有业务需求的。
什么是Docker??的更多相关文章
- docker——容器安装tomcat
写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...
- Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境
首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...
- Docker 第一篇--初识docker
已经多年不写博客, 看完<晓松奇谈>最后一期猛然觉醒, 决定仔细梳理下自己这几年的知识脉络. 既然决定写, 那么首先就从最近2年热门的开源项目Docker开始.Docker 这两年在国内很 ...
- 在docker中运行ASP.NET Core Web API应用程序(附AWS Windows Server 2016 widt Container实战案例)
环境准备 1.亚马逊EC2 Windows Server 2016 with Container 2.Visual Studio 2015 Enterprise(Profresianal要装Updat ...
- docker for mac 学习记录
docker基本命令 docker run -d -p 80:80 --name webserver nginx 运行容器并起别名 docker ps 展示目前启动的容器 docker ps -a 展 ...
- scrapy爬虫docker部署
spider_docker 接我上篇博客,为爬虫引用创建container,包括的模块:scrapy, mongo, celery, rabbitmq,连接https://github.com/Liu ...
- [原][Docker]特性与原理解析
Docker特性与原理解析 文章假设你已经熟悉了Docker的基本命令和基本知识 首先看看Docker提供了哪些特性: 交互式Shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上, ...
- 开发者的利器:Docker 理解与使用
困扰写代码的机器难免会被我们安装上各种各样的开发工具.语言运行环境和引用库等一大堆的东西,长久以来不仅机器乱七八糟,而且有些相同的软件还有可能会安装不同的版本,这样又会导致一个项目正常运行了,却不小心 ...
- 使用python自动生成docker nginx反向代理配置
由于在测试环境上用docker部署了多个应用,而且他们的端口有的相同,有的又不相同,数量也比较多,在使用jenkins发版本的时候,不好配置,于是想要写一个脚本,能在docker 容器创建.停止的时候 ...
- 微服务与Docker介绍
什么是微服务 微服务应用的一个最大的优点是,它们往往比传统的应用程序更有效地利用计算资源.这是因为它们通过扩展组件来处理功能瓶颈问题.这样一来,开发人员只需要为额外的组件部署计算资源,而不需要部署一个 ...
随机推荐
- python学习:调用其他函数
vim wc.py #!/usr/bin/python def wordCount(s): chars = len(s) words = len(s.split()) ...
- 同步博客—CSDN推广
niiickのCSDN 用CSDN也有几个月了 其实一开始有人让我转到博客园我是拒绝的 (毕竟强迫症接受不了一边博客只有一半= =) 不过最近有幸观赏了某位dalao的博客园 发现没有广告好棒!!!设 ...
- Linux 每日命令行
uptime 用于查看系统的负载信息. 它依次显示 当前系统时间.系统已运行时间.启用终端数量及平均负载值等信息.平均负载指的是系统在最近1分钟.5分钟.15分钟内的压力情况:负载值越低越好,尽量不要 ...
- 【学习笔记】Hibernate 注解 (Y2-1-9)
Hibernate注解 1.什么是注解在类上或者方法上打上其他类型的类型元数据 @标志 使用过的注解: @override 方法重写 @Test Junit 单元测试 @Before 单元测试 @A ...
- JAVA受检异常和非受检异常举例
受检异常和非受检异常(运行时异常)举例 RuntimeException(即非受检异常): RuntimeException在默认情况下会得到自动处理,所以通常用不着捕获RuntimeExceptio ...
- Python常用数据结构之collections模块
Python数据结构常用模块:collections.heapq.operator.itertools collections collections是日常工作中的重点.高频模块,常用类型由: 计数器 ...
- ListIterator的使用
package cn.lonecloud.Iterator; import java.util.ArrayList; import java.util.ListIterator; public cla ...
- Eventlog控件的使用
CreateEventSource 已重载. 建立一个能够将事件信息写入到系统的特定日志中的应用程序. Delete 已重载. 移除日志资源. DeleteEventSource 已重载. 从事件日志 ...
- javascript高级程序设计第三章的一些笔记
[TOC] 1. 语法 1.1 区分大小写 变量.函数名和操作费都区分大小写. 1.2 标识符 标识符指变量.函数.属性的名字,或者函数的参数.标识符按以下规则组合: 第一个字符必须是一个字母,下划线 ...
- ACdream1032 Component 树形DP
思路:dp[i][j]表示以i为根结点有j个连通节点的最小和, 当进行状态转移时需要利用01背包,节点u下面有多个子节点,每个子节点可以最多可以贡献cnt[v]个节点,cnt[v]表示以v为根结点的树 ...