谈谈我对docker的理解

 更新时间:2016年10月18日 16:27:27   投稿:mrr  
作为一种新兴的虚拟化方式,Docker跟传统的虚拟化方式相比具有众多的优势。这篇文章给大家介绍了docker的优势及docker的三个基本概念,感兴趣的朋友一起看看吧

先给大家说下docker概念

Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。

Docker优势:

更快速的交付和部署(一次创建和配置,可以在任意地方正常运行)

更高效的虚拟化(不需要hypervisor支持,内核级虚拟化)

更轻松的迁移和扩展(在任意平台移植)

更简单的管理()

关于docker理解

一、首先是关于虚拟化

虚拟化我们可以简单的理解为一种资源管理方式。有如下几种虚拟化的方式:

1.完全虚拟化:对底层硬件实现完全的虚拟。例如:Vmware Workstation

2.部分虚拟化:只对部分硬件资源的虚拟。

3.操作系统级虚拟化:内核通过创建多个虚拟操作系统实例来隔离各个进程。

docker就是属于操作系统级的虚拟化。

二、其次是对docker的理解

docker的思想来源于集装箱,试问集装箱解决了什么问题?
试想,在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会相互影响。那么我就不需要专门运送水果的船和专门运送化学物品的船了。只要这些货物在集装箱里装的好好的,那我就可以用一艘大船把它们都运走。docker就是类似的理念。现在都流行云计算了,云计算就好比大货轮,而docker就是集装箱。

Docker的优点:

1.更快速地交付和部署

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

2.更轻松的迁移和扩展

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

3.更高效的虚拟化和更简单的管理

在服务器负载方面,如果你单独开一个虚拟机,那么虚拟机会占用空闲内存的,docker部署的话,这些内存就会被有效的利用起来。而且Docker容器的运行不需要额外的hypervisor支持,它是内核级的虚拟化,因此可以实现更高的性能和效率。

Docker的三个基本概念:

镜像、容器、仓库

三、Docker的三个基本概念的详解

1.镜像

Docker在英语当中的本意是“物件/码头工人”,docker容器的意思为物件的容器。关于镜像,举个简单的例子,我们经常安装的windows操作系统,先要从网上下载ISO镜像文件,经解压后才能安装和使用。Docker也是一样,我们要向创建docker容器,就需要创建容器的类似于ISO镜像文件的docker镜像文件。

2.容器

关于容器,大家肯定并不陌生。没错,docker容器就是来管理不同架构的应用程序的。从本质上来说,容器是从镜像创建的运行实例。容器与容器之间是相互隔离的,每个容器都是保证安全的平台。

3.仓库

仓库是集中存放镜像文件的场所,但是在这里要区分两个概念:仓库和仓库服务注册器。仓库注册服务器往往存放着多个仓库,每个仓库又包含着多个镜像。

仓库分为公开仓库和私有仓库,最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。国内的公开仓库包括Docker Pool等,可以提供大陆用户更稳定快速的访问。

除此之外,用户可以在本地网络内创建一个私有仓库。当用户创建了自己的镜像之后就可以使用push命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上pull下来就可以了。

小结:

作为一种新兴的虚拟化方式,Docker跟传统的虚拟化方式相比具有众多的优势。

首先,Docker容器的启动可以在秒级实现,这相比传统的虚拟机方式要快的多。其次,Docker对系统资源的利用率很高,一台主机上可以同时运行千个Docker容器。

容器除了运行其中应用外,基本不消耗额外的系统资源,使的应用的性能很高,同时系统开销尽量小。传统虚拟机方式运行10个不同的应用就要起10个虚拟机,而Docker只需要启动10个隔离的应用即可。

以上所述是小编给大家介绍的我对docker的理解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • 使用docker部署django技术栈项目的方法步骤

    使用docker部署django技术栈项目的方法步骤

    这篇文章主要介绍了使用docker部署django技术栈项目的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • 详解如何在 docker 容器中捕获信号

    详解如何在 docker 容器中捕获信号

    本篇文章主要介绍了如何在 docker 容器中捕获信号,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Docker如何多步构建生成dubbo-admin镜像详解

    Docker如何多步构建生成dubbo-admin镜像详解

    dubbo-admin是dubbo框架的管理平台,下面这篇文章主要给大家介绍了关于Docker如何多步构建生成dubbo-admin镜像的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2018-04-04
  • docker安装tomcat dubbo-admin实例技巧

    docker安装tomcat dubbo-admin实例技巧

    在本篇文章里小编给大家整理的是关于docker安装tomcat dubbo-admin实例技巧,有需要的朋友们可以参考下。
    2020-01-01
  • 在docker中部署tomcat并且部署java应用程序的步骤详解

    在docker中部署tomcat并且部署java应用程序的步骤详解

    本文给大家介绍如何在docker中部署tomcat及如何部署我们的应用程序到docker容器的tomcat里,本文介绍的非常详细,具有参考借鉴价值,一起看看吧
    2016-10-10
  • 详解Docker私有仓库最简便的搭建方法

    详解Docker私有仓库最简便的搭建方法

    本篇文章主要介绍了Docker私有仓库最简便的搭建方法,具有一定的参考价值,有兴趣的可以了解一下。
    2017-02-02
  • Docker Swarm入门实例详解

    Docker Swarm入门实例详解

    这篇文章主要介绍了Docker Swarm 入门实例详解的相关内容,小编觉得十分不错,在这里给大家分享下,需要的朋友可以参考。
    2017-10-10
  • 在Ubuntu 16.04安装与使用Docker的教程详解

    在Ubuntu 16.04安装与使用Docker的教程详解

    Docker是一个应用程序,它使得在容器中运行应用程序进程变得简单和容易,这类应用程序就像虚拟机,只有更便携,更加资源友好,更依赖于主机操作系统。这篇文章主要介绍了在Ubuntu 16.04安装与使用Docker的教程
    2017-01-01
  • MAC下安装docker教程

    MAC下安装docker教程

    Docker是当下十分火的一项技术,Docker使用了Linux-specific内核特定,所以在Mac OS X无法直接本地运行。但是可以通过安装Boot2Docker application实现。Boot2Docker包含了Virtual Box VM,Docker和Boot2Docker管理工具。
    2016-02-02
  • 详解Ubuntu Docker Registry 搭建私有仓库

    详解Ubuntu Docker Registry 搭建私有仓库

    这篇文章主要介绍了详解Ubuntu Docker Registry 搭建私有仓库,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02

最新评论