文档章节

Docker介绍

FeanLau
 FeanLau
发布于 2017/05/02 13:45
字数 1322
阅读 38
收藏 0
点赞 0
评论 0

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

Docker的应用场景:

1. 简化配置
这是Docker公司宣传的Docker的主要使用场景。虚拟机的最大好处是能在你的硬件设施上运行各种配置不一样的平台(软件、系统),Docker在降低额外开销的情况下提供了同样的功能。它能让你将运行环境和配置放在代码中然后部署,同一个Docker的配置可以在不同的环境中使用,这样就降低了硬件要求和应用环境之间耦合度。
2. 代码流水线(Code Pipeline)管理
前一个场景对于管理代码的流水线起到了很大的帮助。代码从开发者的机器到最终在生产环境上的部署,需要经过很多的中间环境。而每一个中间环境都有自己微小的差别,Docker给应用提供了一个从开发到上线均一致的环境,让代码的流水线变得简单不少。
3. 提高开发效率
这就带来了一些额外的好处:Docker能提升开发者的开发效率。如果你想看一个详细一点的例子,可以参考Aater在DevOpsDays Austin 2014 大会或者是DockerCon上的演讲。

不同的开发环境中,我们都想把两件事做好。一是我们想让开发环境尽量贴近生产环境,二是我们想快速搭建开发环境。

理想状态中,要达到第一个目标,我们需要将每一个服务都跑在独立的虚拟机中以便监控生产环境中服务的运行状态。然而,我们却不想每次都需要网络连接,每次重新编译的时候远程连接上去特别麻烦。这就是Docker做的特别好的地方,开发环境的机器通常内存比较小,之前使用虚拟的时候,我们经常需要为开发环境的机器加内存,而现在Docker可以轻易的让几十个服务在Docker中跑起来。
4. 隔离应用
有很多种原因会让你选择在一个机器上运行不同的应用,比如之前提到的提高开发效率的场景等。

我们经常需要考虑两点,一是因为要降低成本而进行服务器整合,二是将一个整体式的应用拆分成松耦合的单个服务(译者注:微服务架构)。如果你想了解为什么松耦合的应用这么重要,请参考Steve Yege的这篇论文,文中将Google和亚马逊做了比较。
5. 整合服务器
正如通过虚拟机来整合多个应用,Docker隔离应用的能力使得Docker可以整合多个服务器以降低成本。由于没有多个操作系统的内存占用,以及能在多个实例之间共享没有使用的内存,Docker可以比虚拟机提供更好的服务器整合解决方案。
6. 调试能力Docker
提供了很多的工具,这些工具不一定只是针对容器,但是却适用于容器。它们提供了很多的功能,包括可以为容器设置检查点、设置版本和查看两个容器之间的差别,这些特性可以帮助调试Bug。你可以在《Docker拯救世界》的文章中找到这一点的例证。
7. 多租户环境
另外一个Docker有意思的使用场景是在多租户的应用中,它可以避免关键应用的重写。我们一个特别的关于这个场景的例子是为IoT(译者注:物联网)的应用开发一个快速、易用的多租户环境。这种多租户的基本代码非常复杂,很难处理,重新规划这样一个应用不但消耗时间,也浪费金钱。

使用Docker,可以为每一个租户的应用层的多个实例创建隔离的环境,这不仅简单而且成本低廉,当然这一切得益于Docker环境的启动速度和其高效的diff命令。

你可以在这里了解关于此场景的更多信息。
8. 快速部署
在虚拟机之前,引入新的硬件资源需要消耗几天的时间。Docker的虚拟化技术将这个时间降到了几分钟,Docker只是创建一个容器进程而无需启动操作系统,这个过程只需要秒级的时间。这正是Google和Facebook都看重的特性。

你可以在数据中心创建销毁资源而无需担心重新启动带来的开销。通常数据中心的资源利用率只有30%,通过使用Docker并进行有效的资源分配可以提高资源的利用率。

© 著作权归作者所有

共有 人打赏支持
FeanLau
粉丝 3
博文 201
码字总数 129363
作品 0
浦东
程序员
docker 学习笔记(一)Docker的介绍与安装使用

Docker的介绍与安装使用 标签(空格分隔): docker的部分 一: docker 的介绍 1.1 docker是什么 供接口。Shim:只负责管理一个容器。runC:是一个轻量级的工具,只用来运行容器。 命名空间,...

flyfish225 ⋅ 05/13 ⋅ 0

『中级篇』如何在mac上安装docker(五)

人与动物最大的区别就是,人会使用工具。在二线城市可能不太明显,一线开发和运维一般都是使用的电脑都是mac,因为mac更接近服务器的linux操作系统。 mac安装的官网介绍 docker官网mac安装 ...

IT人故事会 ⋅ 05/27 ⋅ 0

报名|「OneAPM x DaoCloud」技术公开课:Docker性能监控!

如今,越来越多的公司开始 Docker 了,「三分之二的公司在尝试了 Docker 后最终使用了它」,也就是说 Docker 的转化率达到了 67%,同时转化时长也控制在 60 天内。 既然 Docker 这么火,Doc...

OneAPM蓝海讯通 ⋅ 2016/04/21 ⋅ 0

docker+open vswitch多宿主间容器互连构建tomcat服务

1、本文介绍centos7下的docker容器互联及端口映射问题 环境介绍: docker1:192.168.1.230 docker2:192.168.1.231 a.两台宿主分别更改主机名docker1 and docker2 # hostnamectl set-hostname ...

Anonymous123 ⋅ 2016/04/22 ⋅ 0

Docker安装运行Nginx

关于Docker运行Nginx的文章层出不穷,鄙人推荐http://www.runoob.com/docker/docker-install-nginx.html这篇文章中介绍的两种方法。在这里,我着重介绍下第二种方法吧,直接从docker Hub上拉...

李朝强 ⋅ 05/29 ⋅ 0

DICOM:Docker实现增量发布之前期准备

背景: 为了方便整体产品的发布,希望通过docker实现增量发布。大致的思路如下: is-there-a-way-to-add-only-changed-files-to-a-docker-image-as-a-new-layer-with。本博文对这种方式进行了...

zssureqh ⋅ 2016/07/24 ⋅ 0

《Moving to Docker》系列之译者序

无论是大公司还是小型创业公司,都有遇到过系统环境选择、开发环境和生产环境不一致以及如何快速部署的问题,这些琐碎的问题不仅消耗了大量的时间去排查,而且还容易反复再犯。于是,开发者们...

DockOne ⋅ 2015/02/05 ⋅ 2

docker学习笔记(1)

(1)Docker介绍 关于Docker的介绍,我就不列举出来了。到百度、谷歌搜索。非常多介绍文章。以下我给出官网的介绍:https://www.docker.com/whatisdocker/ (2)体验Docker Docker官网提供了...

技术mix呢 ⋅ 2017/10/19 ⋅ 0

【个人笔记重点,不作为参考】主题:ubuntu 16.04安装docker-ce v17.03

zhuanzai from : https://www.centos.bz/2017/03/ubuntu-16-04-install-docker-ce-v17-03/ 本文介绍在ubuntu 16.04 LTS安装最新版本的docker-ce,docker v17.03。目前docker分为docker-ce(社......

qq_37146850 ⋅ 04/24 ⋅ 0

Docker容器技术 学习笔记汇总

“如果你不出去走走,你就会以为这就是全世界。” 一直在嵌入式领域,这次遇到Docker算是长了见识。刚好公司同事们对这块了解地不多,那就把Docker容器技术的学习梳理成系列笔记,让其他伙伴少...

iotisan ⋅ 2017/10/20 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Jenkins实践3 之脚本

#!/bin/sh# export PROJ_PATH=项目路径# export TOMCAT_PATH=tomcat路径killTomcat(){pid=`ps -ef | grep tomcat | grep java|awk '{print $2}'`echo "tom...

晨猫 ⋅ 今天 ⋅ 0

Spring Bean的生命周期

前言 Spring Bean 的生命周期在整个 Spring 中占有很重要的位置,掌握这些可以加深对 Spring 的理解。 首先看下生命周期图: 再谈生命周期之前有一点需要先明确: Spring 只帮我们管理单例模...

素雷 ⋅ 今天 ⋅ 0

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

实验楼—MySQL基础课程-挑战3实验报告

按照文档要求创建数据库 sudo sercice mysql startwget http://labfile.oss.aliyuncs.com/courses/9/createdb2.sqlvim /home/shiyanlou/createdb2.sql#查看下数据库代码 代码创建了grade......

zhangjin7 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部