Docker初体验

 Docker简介

什么是虚拟化

  • 在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的 各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实 体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这 些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的 虚拟化资源包括计算能力和资料存储。
  • 在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的 旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件 对资 源充分利用
  • 虚拟化技术种类很多,例如:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化 (vip)、桌面虚拟化、服务虚拟化、虚拟机等等。

 什么是docker

Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业
余项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵
从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护。

        Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为
Docker Inc Redhat 已经在其 RHEL6.5 中集中支持 Docker Google 也在其 PaaS 产品
中广泛应用。
        Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是
Linux 容器(LXC)等技术
        在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,
使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简
单。
在这里插入图片描述

 

为什么选择Docker?

(1)上手快。

用户只需要几分钟,就可以把自己的程序 “Docker Docker 依赖于 写时复
”(copy-on-write)模型,使修改应用程序也非常迅速,可以说达到 随心所致,代码
即改 的境界。
随后,就可以创建容器来运行应用程序了。大多数 Docker 容器只需要不到 1 秒中即
可启动。由于去除了管理程序的开销, Docker 容器拥有很高的性能,同时同一台宿主机
中也可以运行更多的容器,使用户尽可能的充分利用系统资源。

2)职责的逻辑分类

使用Docker ,开发人员只需要关心容器中运行的应用程序,而运维人员只需要关心
如何管理容器。 Docker 设计的目的就是要加强开发人员写代码的开发环境与应用程序要
部署的生产环境一致性。从而降低那种 开发时一切正常,肯定是运维的问题(测试环境
都是正常的,上线后出了问题就归结为肯定是运维的问题)

3)快速高效的开发生命周期

Docker 的目标之一就是缩短代码从开发、测试到部署、上线运行的周期,让你的应
用程序具备可移植性,易于构建,并易于协作。(通俗一点说, Docker 就像一个盒子,
里面可以装很多物件,如果需要这些物件的可以直接将该大盒子拿走,而不需要从该盒
子中一件件的取。)

4)鼓励使用面向服务的架构

Docker 还鼓励面向服务的体系结构和微服务架构。 Docker 推荐单个容器只运行一个
应用程序或进程,这样就形成了一个分布式的应用程序模型,在这种模型下,应用程序
或者服务都可以表示为一系列内部互联的容器,从而使分布式部署应用程序,扩展或调
试应用程序都变得非常简单,同时也提高了程序的内省性。(当然,可以在一个容器中
运行多个应用程序)

容器与虚拟机比较

图片比较了 Docker 和传统虚拟化方式的不同之处,可见容器是在操作系统层
面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现

Hypervisor虚拟了硬件,可以装不同的操作系统 ,在不同的操作系统上安装各自的环境,完成代码部署

docker Engine是在环境和本机操作系统之间做了隔离,但所有环境依旧使用的是本机的操作系统。

 与传统的虚拟机相比,Docker优势体现为启动速度快、占用体积小

Docker 组件

Docker服务器与客户端

Docker 是一个客户端 - 服务器( C/S )架构程序 Docker 客户端只需要向 Docker 服务
器或者守护进程发出请求,服务器或者守护进程将完成所有工作并返回结果。 Docker
供了一个命令行工具 Docker 以及一整套 RESTful API 。你可以在同一台宿主机上运行
Docker 守护进程和客户端,也可以从本地的 Docker 客户端连接到运行在另一台宿主机上
的远程 Docker 守护进程。

 

 Docker镜像与容器

        镜像是构建Docker 的基石。用户基于镜像来运行自己的容器。镜像也是 Docker 生命
周期中的 构建 部分。镜像是基于联合文件系统的一种层式结构,由一系列指令一步一步
构建出来。例如:
添加一个文件;
执行一个命令;
打开一个窗口。
也可以将镜像当作容器的 源代码 。镜像体积很小,非常 便携 ,易于分享、存储和更
新。
        Docker 可以帮助你构建和部署容器,你只需要把自己的应用程序或者服务打包放进
容器即可。容器是基于镜像启动起来的,容器中可以运行一个或多个进程。我们可以认
为,镜像是 Docker 生命周期中的构建或者打包阶段,而容器则是启动或者执行阶段。 容
器基于镜像启动,一旦容器启动完成后,我们就可以登录到容器中安装自己需要的软件
或者服务。
所以 Docker 容器就是:
一个镜像格式;
一些列标准操作;
一个执行环境。
        Docker 借鉴了标准集装箱的概念。标准集装箱将货物运往世界各地, Docker 将这个
模型运用到自己的设计中,唯一不同的是:集装箱运输货物,而 Docker 运输软件。
        和集装箱一样, Docker 在执行上述操作时,并不关心容器中到底装了什么,它不管
web 服务器,还是数据库,或者是应用程序服务器什么的。所有的容器都按照相同的
方式将内容 装载 进去
        Docker 也不关心你要把容器运到何方:我们可以在自己的笔记本中构建容器,上传
Registry ,然后下载到一个物理的或者虚拟的服务器来测试,在把容器部署到具体的主
机中。像标准集装箱一样, Docker 容器方便替换,可以叠加,易于分发,并且尽量通
用。

 Registry(注册中心)

        Docker用Registry来保存用户构建的镜像。 Registry 分为公共和私有两种 Docker
公司运营公共的 Registry 叫做 Docker Hub 。用户可以在 Docker Hub 注册账号,分享并保
存自己的镜像(说明:在 Docker Hub 下载镜像巨慢,可以自己构建私有的 Registry
https://hub.docker.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值