问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Docker自学教程

发布网友 发布时间:2022-10-04 09:17

我来回答

1个回答

热心网友 时间:2023-01-20 13:03

Docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于go语言并遵从Apache2.0协议开源。Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

一个完整的Docker有以下几个部分组成:

Docker核心解决的问题是利用LXC来实现类似VM的功能,从而利用更加节省的硬件资源提供给用户更多的计算资源。同VM的方式不同, LXC 其并不是一套硬件虚拟化方法 - 无法归属到全虚拟化、部分虚拟化和半虚拟化中的任意一个,而是一个操作系统级虚拟化方法, 理解起来可能并不像VM那样直观。所以我们从虚拟化到docker要解决的问题出发,看看他是怎么满足用户虚拟化需求的。

用户需要考虑虚拟化方法,尤其是硬件虚拟化方法,需要借助其解决的主要是以下4个问题:

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。Docker 容器通过 Docker 镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类形

Docker面向对象容器对象镜像类

Docker采用 C/S架构 Docker daemon 作为服务端接受来自客户的请求,并处理这些请求(创建、运行、分发容器)。 客户端和服务端既可以运行在一个机器上,也可通过 socket 或者RESTful API 来进行通信。

Docker daemon 一般在宿主主机后台运行,等待接收来自客户端的消息。 Docker 客户端则为用户提供一系列可执行命令,用户用这些命令实现跟 Docker daemon 交互。

Docker 特性

在docker的网站上提到了docker的典型场景:

由于其基于LXC的轻量级虚拟化的特点,docker相比KVM之类最明显的特点就是启动快,资源占用小。因此对于构建隔离的标准化的运行环境,轻量级的PaaS(如dokku), 构建自动化测试和持续集成环境,以及一切可以横向扩展的应用(尤其是需要快速启停来应对峰谷的web应用)。

Docker并不是全能的,设计之初也不是KVM之类虚拟化手段的替代品,简单总结几点:

针对1-2,有windows base应用的需求的基本可以pass了; 3-5主要是看用户的需求,到底是需要一个container还是一个VM, 同时也决定了docker作为 IaaS 不太可行。

针对6,7虽然是docker本身不支持的功能,但是可以通过其他手段解决(disk quota, mount --bind)。总之,选用container还是vm, 就是在隔离性和资源复用性上做权衡。

另外即便docker 0.7能够支持非AUFS的文件系统,但是由于其功能还不稳定,商业应用或许会存在问题,而AUFS的稳定版需要kernel 3.8, 所以如果想复制dotcloud的成功案例,可能需要考虑升级kernel或者换用ubuntu的server版本(后者提供deb更新)。这也是为什么开源界更倾向于支持ubuntu的原因(kernel版本)

Docker并非适合所有应用场景,Docker只能虚拟基于Linux的服务。Windows Azure 服务能够运行Docker实例,但到目前为止Windows服务还不能被虚拟化。

可能最大的障碍在于管理实例之间的交互。由于所有应用组件被拆分到不同的容器中,所有的服务器需要以一致的方式彼此通信。这意味着任何人如果选择复杂的基础设施,那么必须掌握应用编程接口管理以及集群工具,比如Swarm、Mesos或者Kubernets以确保机器按照预期运转并支持故障切换。

Docker在本质上是一个附加系统。使用文件系统的不同层构建一个应用是有可能的。每个组件被添加到之前已经创建的组件之上,可以比作为一个文件系统更明智。分层架构带来另一方面的效率提升,当你重建存在变化的Docker镜像时,不需要重建整个Docker镜像,只需要重建变化的部分。

可能更为重要的是,Docker旨在用于弹性计算。每个Docker实例的运营生命周期有限,实例数量根据需求增减。在一个管理适度的系统中,这些实例生而平等,不再需要时便各自消亡了。

针对Docker环境存在的不足,意味着在开始部署Docker前需要考虑如下几个问题。首先,Docker实例是无状态的。这意味着它们不应该承载任何交易数据,所有数据应该保存在数据库服务器中。

其次,开发Docker实例并不像创建一台虚拟机、添加应用然后克隆那样简单。为成功创建并使用Docker基础设施,管理员需要对系统管理的各个方面有一个全面的理解,包括Linux管理、编排及配置工具比如Puppet、Chef以及Salt。这些工具生来就基于命令行以及脚本。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
济南历城区初中排名 济南市初中排名榜 怎样客观评价山东省实验中学和历城二中? ...才能使用?17%3%14%13%怎么有这么多种呢,谢谢指教! 一般纳税人不懂税务和职工业务问题,请师父指教. 为什么中秋节要吃月饼 月饼的由来 中秋节为什么要吃月饼 有什么来历 龙凤洁身纯注册过商标吗?还有哪些分类可以注册? 龙凤家缘注册过商标吗?还有哪些分类可以注册? 龙凤自然堂注册过商标吗?还有哪些分类可以注册? 福建买的保险,在湖北行不行? 为什么长的漂亮的人会越容易成功 为什么美丽的人更成功 潮宏基珠宝告诉你,漂亮女人为什么更容易成功 为什么漂亮气质的女人容易成功? 为什么漂亮女生在职场上更容易成功? 为什么长得好看的人在职场上更容易成功呢? 借条可不可以转让 冷库储存大白菜的方法 冷库储存大白菜的方法分享 借条可以转给别人吗 王者荣耀无双王者是什么段位呢? 布鲁斯吉他教程视频 宿舍工作总结 萧娅轩的个人资料 萧亚轩的个人资料 萧雅轩的个人资料 萧亚轩个人资料(继承巨额遗产的萧亚轩) 新家每晚都会响起诡异的敲门声,可是门外根本没 续写“地球上最后一个人独自坐在房间里这时忽然响起敲门声”的题目 QQ炫舞中一天最多能刷多少贡献? 梦见一群猪 梦见一群猪的意义 梦见看见一群小猪是什么意思 玫瑰花33朵的含义 送33朵玫瑰花的意思 Win10中使用U盘备份还原Win8.1提示0xc000000f错误怎么 长沙市普通话测试中心和湖南省普通话测试中心考的证有什么区别? 无锡小学毕业考时间2022 无锡市五河小学六年级六1班李蔓期末考试成绩单 无锡2022暑假期末考试日期 炉石传说新手练习模式有什么技巧 详细解析 炉石传说新手很迷茫 所有角色满10级是不是所有基础卡都得到了?经典卡 暗黑魔域安卓iOS数据互通吗 苹果安卓能一起玩吗 暗黑传说魔域是4月16号开1区吗?谁知道的,告诉下网站 魔域暗黑龙骑技能怎么放置 魔域暗黑龙骑要注意哪些方面 怎么玩好 魔域暗黑骑士配什么宝宝好 魔域暗黑龙骑选什么神格 魔域暗黑骑士怎样刷龙力 谁有暗黑传说魔域的网址 武夷山农民社保最高交多少 农村养老保险交哪档最划算?