| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> docker简介 -> 正文阅读 |
|
[系统运维]docker简介 |
什么是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
是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的 容器。开发者在本地编译测试通过的容器可以批量地在生产环境中部署,包括VMs
(虚拟机)、
bare metal、
OpenStack
集群和其他的基础应用平台。
简单的理解,
Docker
类似于集装箱,各式各样的货物,经过集装箱的标准化进行托管,而集装箱和集装 箱之间没有影响。也就是说,Docker
平台就是一个软件集装箱化平台,这就意味着我们自己可以构建应 用程序,将其依赖关系一起打包到一个容器中,然后这容器就很容易运送到其他的机器上进行运行,而 且非常易于装载、复制、移除,非常适合软件弹性架构。
![]()
因此,就像船只、火车或卡车运输集装箱而不论其内部的货物一样,软件容器充当软件部署的标准单 元,其中可以包含不同的代码和依赖项。 按照这种方式容器化软件,开发人员和 IT
专业人员只需进行极 少修改或不修改,即可将其部署到不同的环境。
总而言之,
Docker
是一个开放平台,使开发人员和管理员可以在称为容器的松散隔离的环境中构建镜 像、交付和运行分布式应用程序。以便在开发、QA
和生产环境之间进行高效的应用程序生命周期管 理。
下面的图片比较了
Docker
和传统虚拟化方式的不同之处,可见容器是在操作系统层面上实现虚拟化, 直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。
?
Docker 的基本结构:? ?
从上图,我们可以看到,容器由于省去了操作系统,整个层级更简化,可以在单台服务器上 运行更多的 应用,而这正是 IaaS
所需要的,可能
5G
左右的空间对你来说不是什么大事,但是如 果你需要对外提供成千上万的主机,那就是不得不考虑的问题,而这正是容器虚拟化要解决的问题。
比如:波音公司造飞机肯定不会考虑在水上航行的问题,造船厂也绝对不会考虑要在天上飞 的问题,汽车制造公司也不会考虑要在水上跑的问题,那么对于广大的移动互联网公司和云计算 公司,也可以只关注最顶层的应用,而不需要去考虑操作系统的问题。
? 为什么要使用 Docker??
作为一种新兴的虚拟化方式,
Docker
跟传统的虚拟化方式相比具有众多的优势。
具体说来,
Docker
在如下几个方面具有较大的优势。
1、?更快速的交付和部署
? ? ???对开发和运维( devop
)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运 行。开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后, 运维人员可以直接使用这个容器 来部署代码。 Docker 可以快速创建容器,快速迭代应用程序,并让整个过程全程
可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的。
Docker
容器很轻很快!
容器的启动时间是秒级的,大量地节约开发、 测试、部署的时间。
2、?更高效的虚拟化
Docker
容器的运行不需要额外的
hypervisor
支持,它是内核级的虚拟化,因此可以实现更高的性能和效率。
3、?更轻松的迁移和扩展
Docker
容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。 这种兼容性可以让用户把一个应用程序从一个平台直接迁移到另外一个。
4 、更简单的管理
使用
Docker
,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发 和更新,从而实现自动化并且高效的管理。
?对比传统虚拟机
Docker 应用场景简化配置;
虚拟机的最大好处是能在你的硬件设施上运行各种配置不一样的平台(软件、系统),
Docker
在降低额 外开销的情况下提供了同样的功能。它能让你将运行环境和配置放在代码中然后部署,同一个Docker
的 配置可以在不同的环境中使用,这样就降低了硬件要求和应用环境之间耦合度。
代码流水线(Code Pipeline)管理;
前一个场景对于管理代码的流水线起到了很大的帮助。代码从开发者的机器到最终在生产环境上的部 署,需要经过很多的中间环境。而每一个中间环境都有自己微小的差别,Docker
给应用提供了一个从开 发到上线均一致的环境,让代码的流水线变得简单不少。
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年2日历 | -2025/2/22 22:02:35- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |