Docker介绍与应用

Docker是什么

        Docker是一种轻量级的虚拟化技术,同时是一个开源的应用容器运行环境搭建平台,可以让开发者以便捷方式打包应用到一个可移植的容器中,然后安装至任何运行Linux或Windows等系统的服务器上。相较于传统虚拟机,Docker容器提供轻量化的虚拟化方式、安装便捷、启停速度快。

Docker核心组件 

Docker客户端和服务器(docker引擎)

        Docker是一个客户端/服务器(C/S)架构的程序。Docker客户端只需向Docker服务器或守护进程发出请求,服务器或守护进程将完成所有工作并返回结果。用户可以在同一台宿主机上运行Docker守护进程和客户端,也可以从本地的Docker客户端连接到运行在另一台宿主机上的远程
Docker守护进程。下图描绘了Docker的架构。

Docker镜像

Docker镜像是构建Docker世界的基石,用户基于自己的镜像来运行容器。构建镜像的方式有两种,分别是docker commit和dockerfile。docker镜像是基于联合文件系统的层式结构,由一步步指令构建出来。镜像构建的过程可以理解为自己在服务器上配置环境的步骤复现,将配置环境所执行的操作以编程的方式写入dockerfile,后续再使用这个环境就直接build这个dockerfile,作用类似于脚本。

Registry

Docker用Registry来保存用户构建的镜像。Registry分为公共和私有两种。Docker公司运营的公共Registry叫作Docker Hub。用户可以在Docker Hub注册账号,分享并保存自己的镜像。用户也可以在Docker Hub上保存自己的私有镜像。例如,包含源代码或专利信息等需要保密的镜像,或者只在团队或组织内部可见的镜像。用户甚至可以架设自己的私有Registry。

Docker容器

Docker可以帮用户构建和部署容器,用户只需要把自己的应用程序或服务打包放进容器即可。我们刚刚提到,容器是基于镜像启动起来的,容器中可以运行一个或多个进程。我们可以认为,镜像是Docker生命周期中的构建或打包阶段,而容器则是启动或执行阶段。

Docker借鉴了标准集装箱的概念。标准集装箱将货物运往世界各地,Docker将这个模型运用到自己的设计哲学中,唯一不同的是:集装箱运输货物,而Docker运输软件。每个容器都包含一个软件镜像,也就是容器的“货物”,而且与真正的货物一样,容器里的软件镜像可以进行一些操作。例如,镜像可以被创建、启动、关闭、重启以及销毁。和集装箱一样,Docker在执行上述操作时,并不关心容器中到底塞进了什么,它不管里面是Web服务器,还是数据库,或者是应用程序服务器什么的。所有容器都按照相同的方式将内容“装载”进去。

Docker能做什么

目前我能接触到的应用场景如下:

第一是可以加速本地开发和构建流程,使其更加高效、更加轻量化。本地开发人员可以构建、运行并分享Docker容器。容器可以在开发环境中构建,然后轻松地提交到测试环境中,并最终进入生产环境。第二能够让独立服务或应用程序在不同的环境中,得到相同的运行结果。

Docker与虚拟机的比较

  • 传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程。
  • 而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。

为什么选择Docker

更高效的利用系统资源

容器不需要进行硬件虚拟以及运行完整操作系统,省去了很多额外开销,Docker对系统资源的利用率更高。无论是应用执行速度、内存损耗或者文件存储速度,都要比传统虚拟机技术更加高效。相比于传统虚拟机技术,一个相同配置的主机往往可以运行更多数量的Docker镜像。

一致的运行环境

开发过程中最头疼的问题就是需要搭建特定的环境,俗话说,一杯茶,一本书,一个环境配一天。还有更头疼的问题就是有另一台电脑也需要运行同样的代码,由于开发环境和测试环境的不一致,导致有些bug在开发过程中“意外”地出现。而Docker镜像提供了除内核外完整的运行环境,确保了应用环境的一致性,再也不用担心“这段代码在我电脑上运行没问题,你这到底什么情况”地问题出现。

持续的交付和部署

对开发和运维人员来说,最希望的事情就是一次创建或配置,可以在任意地方,无论是笔记本,台式机、云服务器上都能正常运行。使用Docker可以定制应用镜像来实现持续集成、持续交付、部署。开发人员可以通过Dockerfile来进行镜像构建,并结合持续集成系统进行集成测试,而运维人员可以直接在生产环境中快速部署该镜像。而且使用Dockerfile使镜像构建透明化,不仅仅开发团队可以理解应用运行环境,也方便运维团队理解应用运行所需条件,帮助更好的在生产环境中部署该镜像。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值