美文网首页itQAHome技术汇
Docker入门与基本概念

Docker入门与基本概念

作者: wangxiaoming | 来源:发表于2017-08-24 14:38 被阅读2165次

Docker这个词是2014年的时候第一次接触到,当时特意百度了一下,看看这项技术能够解决什么问题,仅限于了解之后也就不了了之。再次对这个词开始感兴趣是因为要在组内推行分组自动化测试,而Docker对自动化测试环境的高效利用,可以解决测试环境不足的问题。接下来我们来讲讲Docker的相关内容。

什么是Docker?

图片.png
  • Docker是基于Go语言实现的开源项目,诞生于2013年初,最初发起者是dotCloud公司。Docker自开源后收到广泛的关注和讨论,目前已经有多个相关项目,逐渐形成了围绕Docker的生态体系。dotCloud公司后来也改名为Docker Inc,专注于Docker相关技术和产品的开发。
  • 现在主流的Linux操作系统都已经支持Docker。Google公司宣称在其PaaS平台及服务产品中广泛应用了Docker。微软公司宣布和Docker公司合作,以加强其云平台Azure对Docker的支持。亚马逊云也提供对Docker的支持。国内的网易蜂巢、阿里云,腾讯云也都支持Docker容器,容器技术的应用已经逐渐成为业内主流选择。
  • Docker的主要目标是“Build,Ship,and Run Any App,Anywhere”,即通过对应用组件的封装(Packaging)、分发(Distribution)、 部署(Deployment)、运行(Runtime)等生命周期的管理,达到应用组件级别的“一次封装,到处运行”。这里的应用组件,既可以是一个Web 应用,也可以是一套数据库服务,甚至是一个操作系统或编译器。可以说Docker为应用的开发和部署提供了“一站式”的解决方案。

Docker和虚拟机的区别

作为一种轻量级的虚拟化方式,Docker在运行应用上跟传统的虚拟机方式相比具有显著优势。如下图所示。

图片.png 图片.png 图片.png

安装Docker

Docker支持在主流的操作系统平台上使用,包括Ubuntu、CentOS、Windows以及MacOS系统等。当然,在Linux系列平台上是原生支持,使用体验更好。以下是Docker支持部分系统的截图。

图片.png

安装过程就不在多述,官网有详细介绍https://www.docker.com/community-edition

Docker的三大核心概念,镜像(Image)、容器(Container)、仓库(Repository)。

图片.png

三者之间的关系可以由上图看出,简单总结起来仓库是存放镜像的,把镜像启动起来后就是容器。

镜像(Image)

Docker镜像(Image)类似于虚拟机镜像,可以将它理解为一个面向Docker引擎的只读模板,镜像是创建Docker容器的基础。通过版本管理和增量的文件系统,Docker提供了一套十分简单的机制来创建和更新现有的镜像,用户甚至可以从网上下载一个已经做好的应用镜像,并通过简单的命令就可以直接使用。
官方的镜像仓库地址:https://hub.docker.com

容器(Container)

Docker容器(Container)类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。容器是从镜像创建的应用运行实例,可以将其启动、开始、停止删除,而这些容器都是相互隔离、互不可见的。简单地说,容器是镜像的一个运行实例,所不同的是,它带有额外的可写文件层。Docker容器文件系统图如下。

图片.png

仓库(Repository)

仓库(Repository)是集中存放镜像的地方。一个容易与之混淆的概念是注册服务器(Registry)。实际上注册服务器是存放仓库的具体服务器,每个服务器上可以有多个仓库,而每个仓库下面有多个镜像。仓库又分公共仓库和私有仓库。
仓库和注册服务器的区别可以见下图。

图片.png

Docker能改变什么?

总结起来有以下几个方面。

  • 更高效的利用系统资源。相较于虚拟机docker容器的性能更好,能起更多的应用。
  • 一致的运行环境。开发、测试、在线确认、在线的运行环境可以保持一致都统一存储为镜像,在不同的环境运行相同的镜像即可,可以保证各个阶段应用运行环境的一致性。
  • 持续交付和部署。由于各个运行环境的一致性,使得自动化测试环境更加方便快捷,持续交付和部署也变的更加便捷。
  • 更轻松的迁移系统。因为应用运行的依赖环境都在docker容器内,所以进行系统迁移,从一个环境迁移到另外一个环境,更加方便和快捷,只需将镜像文件拷贝到对应的环境,启动起来即可。不在需要繁琐的配置各种依赖的软件及系统版本,使得迁移更加高效顺畅。

相关文章

网友评论

  • 简萧一:谢谢分享 总结很好
  • lionsom_lin:昨天一个大牛刚给我们分享的Docker,数据库两个关系库同步的操作!!屌的不行!!
  • defa3bdc5d36:这两天在用 多谢看到这篇 !
    defa3bdc5d36:@wangxiaoming 哈哈 好的 还在学习中
    wangxiaoming:@耳钉左右 客气,有兴趣的话也把自己学习的心得写成文章,造福技术大家庭,哈哈
  • 550436e2e041:可以用来创建多个虚拟操作系统,然后安装集群吗?比如hadoop,spark的集群
    d80235d90b25: @aijianiula 厉害,小白路过。请继续分享
    wangxiaoming:@aijianiula 可以
  • 扬沙沙:我笔记本电脑上装上这个软件,就可以像虚拟机那样装多个系统了吗
    wangxiaoming:@扬沙沙 安装Ubuntu,centos一类的都可以,我自己就安装了,不过没有界面哦,都是命令行使用
  • 扬沙沙:,全文已看完。docker是来代替虚拟机像vmware这样的软件吗
    wangxiaoming:@扬沙沙 应该是,具体你可以咨询下阿里的客服
    扬沙沙:@wangxiaoming 感谢您的回复 这项技术对于购买阿里云服务器的应用者来说,基本是不需要学习的 是吧
    wangxiaoming:@扬沙沙 docker是用来解决服务器虚拟化的方案,解决不了vmware再普通pc端起到的安装不同带界面的系统的功能,比如安装Windows,mac os,带界面的Ubuntu一类的。它解决的是部署服务器的一些场景,是不带界面的,不知是否回答了你的问题

本文标题:Docker入门与基本概念

本文链接:https://www.haomeiwen.com/subject/johedxtx.html