专栏首页日知录Docker关键知识点儿汇总

Docker关键知识点儿汇总

容器

容器=cgroup+namespace+rootfs+容器引擎(用户态工具)

  • Cgroup:资源控制。
  • Namespace:访问隔离。
  • rootfs:文件系统隔离。
  • 容器引擎:生命周期控制。

容器两个核心技术

NameSpace Namespace又称为命名空间(也可翻译为名字空间),它是将内核的全局资源做封装,使得每个Namespace都有一份独立的资源,因此不同的进程在各自的Namespace内对同一种资源的使用不会互相干扰。

  • IPC:隔离System V IPC和POSIX消息队列。
  • Network:隔离网络资源。
  • Mount:隔离文件系统挂载点。
  • PID:隔离进程ID。
  • UTS:隔离主机名和域名。
  • User:隔离用户ID和组ID。

Cgroup Cgroup是control group的简写,属于Linux内核提供的一个特性,用于限制和隔离一组进程对系统资源的使用,也就是做资源QoS,这些资源主要包括CPU、内存、block I/O和网络带宽。

  • devices:设备权限控制。
  • cpuset:分配指定的CPU和内存节点。
  • cpu:控制CPU占用率。
  • cpuacct:统计CPU使用情况。
  • memory:限制内存的使用上限。
  • freezer:冻结(暂停)Cgroup中的进程。
  • net_cls:配合tc(traffic controller)限制网络带宽。
  • net_prio:设置进程的网络流量优先级。
  • huge_tlb:限制HugeTLB的使用。
  • perf_event:允许Perf工具基于Cgroup分组做性能监测。

Docker五种网络模式

None 不为容器配置任何网络功能。

Container 与另一个运行中的容器共享NetworkNamespace,共享相同的网络视图。

Host 与主机共享Root Network Namespace,容器有完整的权限可以操纵主机的协议栈、路由表和防火墙等,所以被认为是不安全的。

Bridge Docker设计的NAT网络模型。 Docker网络的初始化动作包括:创建docker0网桥、为docker0网桥新建子网及路由、创建相应的iptables规则等。

在桥接模式下,Docker容器与Internet的通信,以及不同容器之间的通信,都是通过iptables规则控制的。

Overlay

Docker原生的跨主机多子网模型。

overlay网络模型比较复杂,底层需要类似consul或etcd的KV存储系统进行消息同步,核心是通过Linux网桥与vxlan隧道实现跨主机划分子网。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python运维相关模块汇总

    psutil是一个跨平台库(http://code.google.com/p/psutil/),能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁...

    zd123
  • Kubernetes核心组件运行机制

    总体来看,Kubernetes API Server的核心功能是提供Kubernetes各类资源对象(如Pod、RC、Service等)的增、删、改、查及Wat...

    zd123
  • nginx 104 Connection reset by peer while reading upstream错误处理

    1.看日志发现正常日志和错误日志比例几乎1:1 2.错误日志全部是104: Connection reset by peer) while reading u...

    zd123
  • Docker关键知识点儿汇总

    NameSpace Namespace又称为命名空间(也可翻译为名字空间),它是将内核的全局资源做封装,使得每个Namespace都有一份独立的资源,因此不同的...

    三杯水Plus
  • 深入理解asp.net里的HttpModule机制

    说明: (1)、客户端浏览器向服务器发出一个http请求,此请求会被inetinfo.exe进程截获,然后转交给aspnet_isapi.dll进程,接着它又...

    莫问今朝
  • python生成13位或16位时间戳以及反向解析时间戳的实例

    以上这篇python生成13位或16位时间戳以及反向解析时间戳的实例就是小编分享给大家的全部内容了,希望能给大家一个参考。

    砸漏
  • MapReduce面试题

    1.MapReduce核心思想 分而治之,先分后和(只有一个模型) 【将一个大的、复杂的工作或任务,拆分成多个小的任务,并行处理,最终进行合并。适用于大量复...

    刘浩的BigDataPath
  • python 字典dict

    py3study
  • Vim实现批量注释的方法

    调试代码的时候,免不了要批量注释/取消代码注释,很多IDE都有快捷键将你选中的…

    白凡
  • 程序员没朋友?删注释,学甩锅,这么干就对了!

    昨天我分享了一篇关于收入的个人感悟,没想到如此受欢迎,得到了很多大佬以及读者的点赞。

    程序员小浩

扫码关注云+社区

领取腾讯云代金券