APP下载

云环境搭建一 一篇小文快速读懂docker

消息来源:baojiabao.com 作者: 发布时间:2024-06-04

报价宝综合消息云环境搭建一 一篇小文快速读懂docker

docker不是容器,是容器管理软件,随着行业发展docker的容器引擎已经从lxc(linux container)-->libcontainer-->runc.docker已经是一个遵从业界标准的功能完整的容器管理软件。

在云建设过程中,逐步从主机的虚拟,到更有利于资源利用的程序的模拟。

对程序的模拟可以做到,便捷,轻量,方便部署和销毁,提升资源利用效率, 减少中间虚拟,提高整体效率。

那么对 使用者应用的虚拟机器程序的模拟最重要的是隔离程序资源,保证系统执行独立,互不干扰,共享底层硬件资源,需要主机虚拟,执行操作系统核心,去模拟内存,io,cpu等。

在硬件平台上对隔离环境管理,保持使用者应用执行的隔离环境,在这个环境中执行一个或部分程序,包括管理空间,用来管理整个容器群的管理。

对程序的模拟,一般很难有主机空间模拟那样隔离彻底。

对主机空间隔离彻底,对隔离空间我们一般称之为容器,在容器内一般只能看到自己的程序。

隔离内容包括:uts,主机名,域名,根目录(Mount),独立ipc

需要在容器内对程序数PID进行每个程序的伪装,伪装住空间的使用者为容器的root,包括独立的网络(TCP/IP栈),容器可以通过设定名称空间(namespace)机制进行隔离。

同时也需要核心提供功能限制可用资源总量,比例分配,系结固定值等对硬件资源进行配给,避免某个容器强占所有内存空间。

这时候可以利用分组指派不同的资源,可以根据分组使用空间,和使用资源的能力和许可权。通过CGP(Control Groups cgroups)对系统资源进行指派隔离,包括上面所指的内存,io,cpu,网络等。

docker聪明之处是避免了之前LXC部署采用的模板技术(lxc-create template),而是采用了映象,这样通过建立统一的仓库,存放通用服务软件映象的办法,使使用者下载映象启动使用者,并自主对映象进行叠放(按规则放置映象。)这样简化了容器的使用难度,一个容器一般只执行一个程序,通过隔离提高安全性。

这样在容器中每个程序都有自己的空间,各自独立的管理工具,保持主程序和容器生命周期的的关联程度,即主程序完结则可以保持容器也随之销毁,这样可以快速回收空间,提升利用效率,处理临时任务,比较灵活,在空闲装置上做处理,减少应用程序的特别定制,这样的问题是开发部署比较方便,可是运维就比较繁琐复杂,对如何监视跟踪每个程序,如何动态管理程序,都提出了很高的要求。

docker一般多个容器采用分层实现,联合挂载的方式,比如最底层是系统引导和核心,上面是档案系统,在上面载入映象,比如nginx,tomcat等,同时可指定储存层等,用来储存档案。

附记:

docker下载空间:hub.docker.com

docker 架构(docker architecture):cs架构,socket,容器 映象

docker既相关元件都采用go语言开发。

2019-12-19 18:53:00

相关文章