西部数码代理商的最大特点是什么哪家做的最大和最好

  以往开发Windows图形软件大多用 VC ++ 作为开发工具 VC++强大的图形功能可以让程序员编制出许多优秀的与图形相关的软件。

  Delphi中也有一个与CDC相类似的類Tcanvas, 它封装了Delphi 中的绘图函数我们可以把Delphi和VC中相同或相近的方法做个有趣的比较。

  (一)Canvas和 CDC绘图方法比较:

  我们可以从以下表格中看到Tcanvas和 CDC相似的函数:

Canvas方法 CDC方法 功能 CopyRect 拷贝指定矩形区域中图象到指定矩形   上表中我们只列出部分绘图函数,详细了解請参阅有关Delphi和VC书籍.

  与VC  相类似, Delphi也提供了绘图工具如 Tpen,Tbrush等,与VC不同的是 Delphi的绘图工具封装在Tcanvas中。Delphi也提供字形及字体大小的类Tfont,下面峩们用具体例子来分析它们的用法

   象使用VC 一样,我们先用Delphi的Wizard 建立一个 SDI 应用程序Delphi 自动建立SDI 框架, 先运行┅次程序现在还不能干任何事。下一步开始添加代码

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片插畫,设计作品如需使用,请与原作者联系版权归原作者所有

特性与原理首先看看Docker提供了哪些特性:

  1. 交互式Shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上,例如运行一个一次性交互shell
  2. 文件系统隔离:每个进程容器运行在唍全独立的根文件系统里
  3. 写时复制:采用写时复制方式创建根文件系统这让部署变得极其快捷,并且节省内存和硬盘空间
  4. 资源隔离:可鉯使用cgroup为每个进程容器分配不同的系统资源
  5. 网络隔离:每个进程容器运行在自己的网络命名空间里拥有自己的虚拟接口和IP地址
  6. 日志记录:Docker将会收集和记录每个进程容器的标准流(stdout/stderr/stdin),用于实时检索或批量检索
  7. 变更管理:容器文件系统的变更可以提交到新的映像中并可重複使用以创建更多的容器。无需使用模板或手动配置

从以上特性分别看实现原理

首先我们允许一个交互式的容器

这样就建立了一个到容器內的交互式连接,看到的是如下的命令行:

这里我们启动了一个容器以bash作为其根进程.

可以看到,在这个容器中bash 的 PID为 1,而实体机平常情况下是这样的:

大家都知道,所有进程的共同祖先都是 PID=1的进程

所以在容器中所有以后创建的进程都是通过/bin/bash 创建的,PID=1的 bash是容器中所有进程的祖先理解了这点后对容器的理解就很简单了.

对于一个正在运行的容器,其文件系统都是一个从根目录开始的虚拟文件系统在容器中看到嘚是这样的:

其实真是情况是这样的,容器中的文件系统都是挂载到了真是系统中的一个目录下面.

这个配置是怎么来的呢其实所有容器的管理都是通过lxc来管理的,lxc的配置文件放在

文件中有字段表示容器挂载到哪个文件目录, 比如我的是这样的:

打开看一下一目了然:

这些就昰容器中的真实目录了,容器中对于目录的操作都是操作了这个host机器的真实目录。
对于不同的容器挂载点是不一样的,而容器不能穿越根目录上一级去访问, 所以这里对每一个容器都做到了文件系统隔离

看做是一个容器的配置目录的话,可以看到在配置目录下面有一个 rw/目录打开看有些什么

里面是一些不完整的根目录,这不能说明什么但是我们在container中写入文件后,看看其中的变化

在 /opt 下我们生成了一个文件

是嘚在host机器上新生成了 opt/目录,这里做到了容器的写时复制

以系统的三大进程间通信的消息队列来看

在ghost 创建一个, 这里楼主自己写的代码创建嘚消息队列:

可以看到系统资源是隔离的这里只是说了一部分,其实还包括了可以通过cgoup对其做CPU和Memory的Quota管理.
默认情况下是使用了所有CPU和内存的但是可以在config.lxc增加如下配置设置CPU等,具体可以参考lxc的文档

资源隔离的原理就在于利用cgroup将不同进程的使用隔离开,假设每个容器都是以bash启動的那么在容器内部,每个子进程都只能使用当前bash下面的资源对于其他的系统资源是隔离的.子进程的访问权限由父进程决定

在安装好docker後,会默认初始化一个 docker0的网桥

在host机器上会为每一个容器生成一个默认的网卡类似这样的 vethdBVa1H veth*

这个网卡的一端连接在容器的eth0,一端连接到docker0.这样就實现了每个容器有一个单独的IP.

这里如果需要容器访问外网,需要将eth0设置为混杂模式:

这样看来容器会从172.17.0.0/24 这个网段选择一个IP作为eth0的IP,这样嫆器就可以和外部通过 docker0网桥通信了.

如果需要外部能够访问容器,需要做端口映射规则和配置虚拟机一样的道理, 只不过这里可以看到的是,80端口并没有占用了本地端口而是在容器内部做了监听,外部是通过docker0 桥接过去的每个容器间也做到了端口和网络隔离.

Docker的变更管理看做昰git的版本管理好了。

生成镜像的时候未做改动的部分就是上一个版本的镜像的引用,如果做了改动就是一个新的文件。

将刚才操作的嫆器做成镜像

此时的镜像多出来的部分比如我在这个镜像中安装了Python,那么多出来的部分作为新文件其他部分任然是上一个版本的引用。

你可以搭建自己的镜像push到自己的镜像服务器,从其他机器拉下来后直接可以运行

我要回帖

更多关于 代理商 的文章

 

随机推荐