精华内容
下载资源
问答
  • Docker是干什么的

    千次阅读 热门讨论 2019-01-19 20:20:12
    用来干什么的? 它可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。   一张思维导图奉上:      小编的理解:它用来把你...

    Docker是什么?

    官方:Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。

    用来干什么的?

    它可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。

     

    一张思维导图奉上:

     

     

     小编的理解:它是用来把你的程序在linux系统中打包起来,然后使你的程序和其他程序隔离,就相当于你在一个虚拟机上装了一个软件,和你电脑上的软件没有任何联系,但是它和虚拟机最大的不同就是它的性能开销特别小。

     

    那它在什么场合比较适用呢?

    1. Web应用的自动化打包和发布
    2. 自动化测试和持续集成、发布
    3. 在服务环境中调整后台应用

     

    它的优点:

    1.  简化程序:把你的程序放在箱子里,你就可以让全世界的linux系统很快的部署上你的程序。
    2. 简化部署和配置:Docker的镜像中包含了运行环境和配置,所以它可以简化你实际部署中很多操作。
    3. 节省开支:这个有点正是因为它开销小的特点,它与云结合,让云空间的得到了更充分的利用,解决了硬件管理问题的同时还改变了虚拟化的方式。

     

    这么看着,docker的确挺好,但是它也不是万能的:

    1. 系统限制:只能运行在Linux 64bit的系统上,别的都不行
    2. 隔离性:它的隔离性和KVM之类的虚拟化方案还是有些不足的
    3. Docker对disk的管理比较有限
    4. Container(容器)随着用户的停止而销毁,因此Container中的log等用户数据不便于收集

     

    小编最近才刚刚接触Docker,简单总结,如有不足,欢迎指出!

     

     

    展开全文
  • 百丈高楼平地起,笔者这里先带着大家了解下Docker究竟是干啥用的。目前,随着物理服务器的配置越来越高,我们如果在一台物理服务器上只跑一个服务就浪费了,而同时跑很多服务他们又互相影响,比如说一个服务出了内存...
    97ef1fd2a4b71435d6f39aacbfe63d0d.png

    百丈高楼平地起,笔者这里先带着大家了解下Docker究竟是干啥用的。

    目前,随着物理服务器的配置越来越高,我们如果在一台物理服务器上只跑一个服务就浪费了,而同时跑很多服务他们又互相影响,比如说一个服务出了内存泄漏把整个服务器的内存都占满了,其他服务都跟着倒霉。所以要把每个服务都隔离起来,让它们只使用自己那部分有限的cpu,内存和磁盘,以及自己依赖的软件包。这个早先是用虚拟机来实现隔离的,但是每个虚拟机都要装自己的操作系统核心,这是对资源有点浪费。于是就有了Docker 一个机器上可以装十几个到几十个docker,他们共享操作系统核心,占用资源少,启动速度快。但又能提供了资源(cpu 内存,磁盘等)的一定程度的隔离。

    af258409ed88ffcecc1c356d627c5246.png

    使用docker给软件开发又带来了不少额外的好处。比如说运维省心啊,所有物理服务器的配置几乎都是一样的,只是上面跑的docker container不同。以前某个服务访问量大了,需要多几台服务器,你得一台一台准备,现在直接docker配好,要几个就给几个。还有依赖关系管理也容易了,每个docker image都可以独立配置自己需要的软件包,准备一个配置文件就可以发布,不像以前配置个apache + php就在一台物理主机上从头编译到尾,如果想再多个插件,往往是从头又来一遍,机器多了是受不了的。而且依赖有冲突也没那么怕了,都隔离了嘛。现在docker的隔离性已经做的非常好了。

    09a834371dc6e5a30c18d45e1cf42f47.png

    我觉得docker有个问题是linux宿主和windows宿主的docker实现差异还挺大的。linux是基于linux核心的namespaces和cgroup等来隔离资源,还有libvirt这样的接口实现,基本上能当个虚拟机来用,又很轻量级。windows方面主要是靠微软,微软做得也还不错,前后搞了好几种container方案,前段时候我试过的是基于hyper-v的 功能应该都在了,所以说现在docker在windows主机上也是能用的 这对国内庞大的windows服务器保有量也是个福音。不过在windows上面使用docker开发是没问题,用于生产环境那就只能呵呵了。

    最后,笔者在这里呐喊一声,求关注啊,笔者会持续不断地更新编程相关的内容,期待与你一起进步。

    展开全文
  • 大厂阿里巴巴京东美团百度腾讯浪潮滴滴搜索docker热度docker关键字的分布docker能干什么简化配置这是Docker公司宣传的Docker的主要使用场景。虚拟机的最大好处能在你的硬件设施上运行各种配置不一样的平台(软件、...

    这两年容器技术及其相关工具,平台异常火爆。在各大技术论坛或云计算峰会议题中,都会占很大比重,各主流云计算平台也无一例外地迅速提供了容器服务。

    大厂

    • 阿里巴巴
    • 京东
    • 美团
    • 百度
    • 腾讯
    • 浪潮
    • 滴滴

    搜索docker热度

    • docker关键字的分布
    af622a24a23e04593c0269c2cca9d04c.png
    52ab4c34782d45408c940b9cd0eb1f68.png

    docker能干什么

    9c5c2dd6cb57907c6273c1be4d35014e.png
    56d8414d8d30c4b6a574be0bba6731ef.png
    • 简化配置
    • 这是Docker公司宣传的Docker的主要使用场景。虚拟机的最大好处是能在你的硬件设施上运行各种配置不一样的平台(软件、系统),Docker在降低额外开销的情况下提供了同样的功能。它能让你将运行环境和配置放在代码中然后部署,同一个Docker的配置可以在不同的环境中使用,这样就降低了硬件要求和应用环境之间耦合度。
    • 代码流水线(Code Pipeline)
    • 管理前一个场景对于管理代码的流水线起到了很大的帮助。代码从开发者的机器到最终在生产环境上的部署,需要经过很多的中间环境。而每一个中间环境都有自己微小的差别,Docker给应用提供了一个从开发到上线均一致的环境,让代码的流水线变得简单不少。
    • 提高开发效率
    • 这就带来了一些额外的好处:Docker能提升开发者的开发效率。如果你想看一个详细一点的例子,可以参考Aater在DevOpsDays Austin 2014 大会或者是DockerCon上的演讲。不同的开发环境中,我们都想把两件事做好。一是我们想让开发环境尽量贴近生产环境,二是我们想快速搭建开发环境。理想状态中,要达到第一个目标,我们需要将每一个服务都跑在独立的虚拟机中以便监控生产环境中服务的运行状态。然而,我们却不想每次都需要网络连接,每次重新编译的时候远程连接上去特别麻烦。这就是Docker做的特别好的地方,开发环境的机器通常内存比较小,之前使用虚拟的时候,我们经常需要为开发环境的机器加内存,而现在Docker可以轻易的让几十个服务在Docker中跑起来。
    • 隔离应用
    • 有很多种原因会让你选择在一个机器上运行不同的应用,比如之前提到的提高开发效率的场景等。我们经常需要考虑两点,一是因为要降低成本而进行服务器整合,二是将一个整体式的应用拆分成松耦合的单个服务(译者注:微服务架构)。如果你想了解为什么松耦合的应用这么重要,请参考Steve Yege的这篇论文,文中将Google和亚马逊做了比较。
    • 整合服务器
    • 正如通过虚拟机来整合多个应用,Docker隔离应用的能力使得Docker可以整合多个服务器以降低成本。由于没有多个操作系统的内存占用,以及能在多个实例之间共享没有使用的内存,Docker可以比虚拟机提供更好的服务器整合解决方案。
    • 调试能力Docker
    • 提供了很多的工具,这些工具不一定只是针对容器,但是却适用于容器。它们提供了很多的功能,包括可以为容器设置检查点、设置版本和查看两个容器之间的差别,这些特性可以帮助调试Bug。
    • 多租户环境
    • 另外一个Docker有意思的使用场景是在多租户的应用中,它可以避免关键应用的重写。我们一个特别的关于这个场景的例子是为IoT(译者注:物联网)的应用开发一个快速、易用的多租户环境。这种多租户的基本代码非常复杂,很难处理,重新规划这样一个应用不但消耗时间,也浪费金钱。使用Docker,可以为每一个租户的应用层的多个实例创建隔离的环境,这不仅简单而且成本低廉,当然这一切得益于Docker环境的启动速度和其高效的diff命令。
    • 快速部署
    • 在虚拟机之前,引入新的硬件资源需要消耗几天的时间。Docker的虚拟化技术将这个时间降到了几分钟,Docker只是创建一个容器进程而无需启动操作系统,这个过程只需要秒级的时间。这正是Google和Facebook都看重的特性。你可以在数据中心创建销毁资源而无需担心重新启动带来的开销。通常数据中心的资源利用率只有30%,通过使用Docker并进行有效的资源分配可以提高资源的利用率。

    容器编排工具

    • kubernetes 和 docker swarm
    6e2f3dc7d5ef6d26183e2c85a99839da.png

    DevOps = 文化+过程+工具

    DevOps的出现有其必然性。在软件开发生命周期中,遇到了两次瓶颈。第一次瓶颈是在需求阶段和开发阶段之间,针对不断变化的需求,对软件开发者提出了高要求,后来出现了敏捷方法论,强调适应需求、快速迭代、持续交付。第二个瓶颈是在开发阶段和构建部署阶段之间,大量完成的开发任务可能阻塞在部署阶段,影响交付,于是有了DevOps。

    DevOps的三大原则:

    • 基础设施即代码(Infrastructure as Code)
    • DeveOps的基础是将重复的事情使用自动化脚本或软件来实现,例如Docker(容器化)、Jenkins(持续集成)、Puppet(基础架构构建)、Vagrant(虚拟化平台)等
    • 持续交付(Continuous Delivery)
    • 持续交付是在生产环境发布可靠的软件并交付给用户使用。而持续部署则不一定交付给用户使用。涉及到2个时间,TTR(Time to Repair)修复时间,TTM(Time To Marketing)产品上线时间。要做到高效交付可靠的软件,需要尽可能的减少这2个时间。部署可以有多种方式,比如蓝绿部署、金丝雀部署等。
    • 协同工作(Culture of Collaboration)
    • 开发者和运维人员必须定期进行密切的合作。开发应该把运维角色理解成软件的另一个用户群体。协作有几个的建议:
    • 1、自动化(减少不必要的协作);
    • 2、小范围(每次修改的内容不宜过多,减少发布的风险);
    • 3、统一信息集散地(如wiki,让双方能够共享信息);
    • 4、标准化协作工具(比如jenkins)

    看到这里,点了关注吧!

    1d97b0ef56748ce3c8f5b6e67ab128ed.png
    展开全文
  • docker是什么,docker是干什么的

    千次阅读 2018-07-21 09:14:36
    Docker的思想来自于集装箱,集装箱解决了什么问题?在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响。那么我就不需要专门运送水果的船和专门运送化学...

    以下说明来自:

    刘允鹏  知乎

    Docker的思想来自于集装箱,集装箱解决了什么问题?在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响。那么我就不需要专门运送水果的船和专门运送化学品的船了。只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走。

    docker就是类似的理念。现在都流行云计算了,云计算就好比大货轮。docker就是集装箱。

    1.不同的应用程序可能会有不同的应用环境,比如.net开发的网站和php开发的网站依赖的软件就不一样,如果把他们依赖的软件都安装在一个服务器上就要调试很久,而且很麻烦,还会造成一些冲突。比如IIS和Apache访问端口冲突。这个时候你就要隔离.net开发的网站和php开发的网站。常规来讲,我们可以在服务器上创建不同的虚拟机在不同的虚拟机上放置不同的应用,但是虚拟机开销比较高。docker可以实现虚拟机隔离应用环境的功能,并且开销比虚拟机小,小就意味着省钱了。

    2.你开发软件的时候用的是Ubuntu,但是运维管理的都是centos,运维在把你的软件从开发环境转移到生产环境的时候就会遇到一些Ubuntu转centos的问题,比如:有个特殊版本的数据库,只有Ubuntu支持,centos不支持,在转移的过程当中运维就得想办法解决这样的问题。这时候要是有docker你就可以把开发环境直接封装转移给运维,运维直接部署你给他的docker就可以了。而且部署速度快。

    3.在服务器负载方面,如果你单独开一个虚拟机,那么虚拟机会占用空闲内存的,docker部署的话,这些内存就会利用起来。

    总之docker就是集装箱原理。

    展开全文
  • Docker是干什么用的?

    2019-11-20 11:24:53
    长话短说,这里我就不对docker进行系统的介绍说明了,网上很多介绍文章,我想新手的话可以先网上大概了解一下docker的基本概念。有一个模糊的、大概的感觉就行了。多看资料文档,有百利而无一害。 Docker不是虚拟机 ...
  • 什么是docker?(推荐教程:docker)Docker 一个开放源代码软件项目,让应用程序部署在软件货柜下的工作可以自动化进行,借此在 Linux 操作系统上,提供一个额外的软件抽象层,以及操作系统层虚拟化的自动管理机制。...
  • docker镜像的用处:1、镜像是Docker运行容器的前提,仓库存放镜像的场所,更是Docker的核心;2、镜像可以看作一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时...
  • Docker是用来干什么的

    2018-10-17 14:22:50
    Docker从去年开始不仅能在Linux下运行 ,还支持windows、osX等主流系统。 下面的例子我自己经常使用,当然你有更好的案例也可以分享给我。 尝试新软件 对开发者而言,每天会催生出的各式各样的新技术都需要尝试,...
  • docker是啥?是干什么的

    万次阅读 多人点赞 2019-01-31 20:40:18
    Docker作为一个软件集装箱化平台,可以让开发者构建应用程序时,将它与其依赖环境一起打包到一个容器中,然后很容易地发布和应用到任意平台中。 思想: 集装箱 标准化 隔离 核心 docker有3大核心:镜像、容器、...
  • Docker是用来干什么的

    千次阅读 2018-06-05 14:48:06
    Docker目前只能在Linux下运行 下面的例子我自己经常使用,当然你有更好的案例也可以分享给我。尝试新软件对开发者而言,每天会催生出的各式各样的新技术都需要尝试,然而开发者却不太可能为他们一一搭建好环境并...
  • Docker从去年开始不仅能在Linux下运行 ,还支持windows、osX等主流系统。 下面的例子我自己经常使用,当然你有更好的案例也可以分享给我。 尝试新软件 对开发者而言,每天会催生出的各式各样的新技术都需要尝试,...
  • Docker是什么 Docker为什么会出现 Docker理念 一句话 能嘛 之前的虚拟机技术&容器虚拟化技术 开发/运维(DevOps) 去哪下 Docker安装 Docker的基本说明 基本组成和Docker架构图 架构图...
  • docker-compose是干什么的

    千次阅读 2017-04-18 14:57:16
    Docker registry 工具现在已经很好的支持了 mirror 功能,使用它可以配置一个本地的 mirror 服务,将 pull 过的镜像 cache 在本地,这样其它主机再次 pull 的时候会极大提高响应速度。
  • 定义我们知道,软件依赖的环境大致包括:配置文件代码tomcatJDK操作系统Docker作为一个软件集装箱化平台,可以让开发者构建应用程序时,将它与其依赖环境一起打包到一个容器中,然后很容易地发布和应用到任意平台中...
  • Docker作为一个软件集装箱化平台,可以让开发者构建应用程序时,将它与其依赖环境一起打包到一个容器中,然后很容易地发布和应用到任意平台中。 思想: 集装箱 标准化 隔离 核心: docker有3大核心:...
  • Docker实用干货

    2020-04-09 08:31:11
    1.1 什么是虚拟化 ​ 在计算机中,虚拟化(英语:Virtualization)一种资源管理技术,将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使...
  • Docker 一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器完全使用沙箱机制,相互之间不会有任何接口...
  • 虚拟化技术已经不是什么新闻,但最近Docker的大火,激发了众多大企业的热情,今天我们来看一看Docker是干什么的,为什么要用Docker,Docker的优势?什么是Docker?Docker 是用于开发、运输和运行应用程序的开放平台...
  • Docker

    2018-09-30 16:08:57
    Docker是干什么的 三、>Docker和传统虚拟化技术的对比 四、  五、>搭建Docker环境 1.>>>快速安装Docker 六、  七、>创建第一个Docker镜像 八、>&...
  • Docker综述

    2020-05-07 14:04:42
    Docker综述1、Docker是干什么的?2、Docker的核心:镜像、容器、仓库2.1 容器与虚拟机的区别2.2 仓库Docker作用3、Docker的使用 1、Docker是干什么的? docker 是一个开源的应用容器引擎,让开发者可以打包他们的...
  • Docker是干什么的Docker 是一个基于Linux容器(LXC-linux container)的高级容器引擎,基于go语言开发,源代码托管在 Github 上,遵从Apache2.0协议开源。Docker的目标是实现轻量级的操作系统虚拟化解决方案。学习...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 383
精华内容 153
关键字:

docker是干什么的