美文网首页docker net core
docker1--基础学习

docker1--基础学习

作者: 一个热爱生活的好少年 | 来源:发表于2018-09-26 21:14 被阅读4次

容器本身是没有价值的,有价值的是容器编排

容器是通过'边界'的方式实现的沙盒技术。
容器技术的核心功能,就是通过约束和修改进程的动态表现,从而为创造边界。


进程:程序运起来后的计算机执行环境的总和。
首先,操作系统从“程序”中发现输入数据保存在一个文件中,所以这些文件会加载到内存待命。同时,操作系统又读取到计算加法的指令,cpu与内存协作去完成算法操作,又会使用寄存器存放数值,内存堆栈保存执行的命令和变量。同时计算机打开的文件,以及各种i/o设备不断调用中修改自己的状态。就这样,一旦“程序”被执行起来,它就从磁盘上的二进制文件,变成了计算机内存中的数据、寄存器里的值、堆栈中的指令、被打开的文件,以及各种设备的状态信息的一个集合。

实现边界的方式:Cgroups 技术是用来制造约束的主要手段,而Namesp技术则是用来修改进程视图的主要方法。


image.png

根据图片中我们看到的进程只有之前起的/bin/sh,是由于Namespace参数导致容器中查看不到其他的。除了PID Namespace,Linux 操作系统还提供了Mount(挂载点)、UTS(主机名)、IPC(进程间的通信)、Network(网络访问包括接口) 和 User(将本地的虚拟user-id映射到真实的user-id)等。
资源限制就是通过cgroups技术实现:隔离cpu/内存/磁盘/网络带宽。
Cgroups 还能够对进程进行优先级设置、审计,以及将进程挂起和恢复操作。
在 Linux 中,Cgroups 给用户暴露出来的操作接口是文件系统,它会议文件和目录的方式再/sys/fs/cgroup路径下。


image.png
目录下可以看到cpuset/cpu/memory等文件这些都是可以被cgroup限制的种类。
在容器中top获取的数据情况是宿主机的信息而不是容器的情况:/proc文件系统并不知道cgroup做了什么限制。

解决上述问题 网友回答:1 之前遇到过,但是没有考虑如何解决,临时抱佛脚,查了 lxcfs,尝试回答一下。top 是从 /prof/stats 目录下获取数据,所以道理上来讲,容器不挂载宿主机的该目录就可以了。lxcfs就是来实现这个功能的,做法是把宿主机的 /var/lib/lxcfs/proc/memoinfo 文件挂载到Docker容器的/proc/meminfo位置后。容器中进程读取相应文件内容时,LXCFS的FUSE实现会从容器对应的Cgroup中读取正确的内存限制。从而使得应用获得正确的资源约束设定。kubernetes环境下,也能用,以ds 方式运行 lxcfs ,自动给容器注入争取的 proc 信息。

容器与虚拟化区别:
虚拟化需要创建实打实的虚拟机必须运行一个完整的guestos才能执行用户的进程,产生了更多的资源占用和损耗(网络资源/磁盘io等)。而通过namespace去隔壁,损耗可以忽略不计。
确定在于隔离不彻底,有些资源是无法被Namespace化的:时间。毕竟共享主机内核。

相关文章

  • docker1--基础学习

    容器本身是没有价值的,有价值的是容器编排 容器是通过'边界'的方式实现的沙盒技术。容器技术的核心功能,就是通过约束...

  • react学习路线图

    基础 HTML学习 HTML 基础学习 HTML 基础CSS学习 CSS 基础在上一步练习的基础上为页面添加样式使...

  • RxJava——基础学习(三),简单实践

    RxJava——基础学习(一)RxJava——基础学习(二)前两篇基础学习,了解了RxJava最基础的部分知识。这...

  • 花书第五章笔记

    [TOC] 第五章 机器学习基础 机器学习基础 掌握机器学习的基本知识和基础原理 机器学习基础[p87-p142]...

  • RobotFramework接口测试分享(一)

    基础条件 1、Python的基础:学习Python的基础教程(可参考各大学习网站) 基础部分需要学习,后续接入实际...

  • 谈话档案

    问题类 时间 姓名 学习基础 表现基础 近期问题 问题分析 解决措施 成长类 时间 姓名 学习基础 表现基础 近期...

  • Java 初中级程序员如何快速成长???

    Java 研发技术学习路线 一、Java 基础阶段 基础阶段的学习说白了就是 Java SE 的学习,这是基础的阶...

  • 浅谈语音识别基础

    承接前面的《浅谈机器学习基础》、《浅谈深度学习基础》和《浅谈自然语言处理基础》,主要参考了《解析深度学习:语音识别...

  • 零基础学习UI设计电脑需要什么配置

    零基础学习UI设计电脑需要什么配置零基础学习UI设计电脑需要什么配置零基础学习UI设计电脑需要什么配置零基础学习U...

  • 深度学习基础教程

    深度学习基础教程 [tag]深度学习,机器学习,数据分析,挖掘,算法, [content]深度学习的入门基础。 [...

网友评论

    本文标题:docker1--基础学习

    本文链接:https://www.haomeiwen.com/subject/dyikoftx.html