docker容器相关技术

wq3435 wq3435     2022-08-23     573

关键词:

Docker 依赖的Linux内核特性

  • Namespaces 命名空间
  • Control groups (cgroups) 控制组

理解这两个特性,能够更好的帮助我们理解docker的资源分配和管理

Namespaces 命名空间

  很多编程语言都包含有命名空间的概念,可以认为命名空间是一种封装的概念,编程中的封装目的是实现代码的隔离。

  编程语言:

    封装 ----->  代码隔离

  操作系统:

    系统资源的隔离

    系统资源包括 进行、网络、文件系统...

  实际上Linux系统内核实现命名空间的目的之一就是为了实现轻量级虚拟化服务,也就是我们说的容器

  在同一个命名空间下的进程可以感知彼此的变化,二对其他命名空间下的进程一无所知,这样可以让容器中的进程产生一种错觉,仿佛置身于一个独立的系统环境中,以此达到独立和隔离的目的。

  从docker的公开文档中可以看到使用了 5 种不同的命名空间

  • PID (Process ID) 进程隔离
  • NET (Network) 管理网络接口
  • IPC (InterProcess Communication) 管理跨进程通信的访问
  • MNT (Mount) 管理挂载点也就是文件系统
  • UTS (Unix Timesharing System) 隔离内核和版本标识

  这些隔离的资源是如何管理起来的呢,这就需要用到 Control groups

Control groups 控制组

  Control groups 是Linux系统内核提供的一种可以限制,记录和隔离进程组所使用的物理资源的机制,最初由Googler工程师提出,

  并且在2007年被Linux内核的2.6.24版本整合进来,可以说cgroups就是为了实现容器而生的,没有cgroups就没有容器的技术的今天。

  Control groups控制组提供了哪些功能:

  • 资源限制  比如Memory子系统可以为进程组设定一个内存使用的上限,一旦进程组使用的内存达到的上限,在申请内存就会发出Out of Memory的消息
  • 优先级设定 可以设定哪些进程组使用更大的CPU或者是磁盘IO 的资源
  • 资源计量 可以计算进程组使用了多少系统资源,尤其在计费系统中这点非常重要
  • 资源控制 可以将进程组挂起和恢复

 

这两个特性带给了Docker容器的哪些能力呢?

Docker容器的能力

  • 文件系统隔离:每个容器都有自己的root文件系统 
  • 进程隔离: 每个容器都运行在自己的进程环境中
  • 网络隔离:容器间的虚拟网络接口和IP地址都是分开的
  • 资源隔离和分组:使用cgroups将CPU 和内存之类的资源独立分配给每个Docker容器

 

 

 

  

docker容器相关技术

docker需要依赖的Linux内核特性:(1)Namespaces命名空间PID(ProcessID)用来隔离进程NET(Network)管理网络接口IPC(InterProcesscommunication)管理跨进程通信的访问MNT(Mount)管理挂载点UTS(UnixTimesharingSystem)隔离内核和版本标识(2)Controlgroups(cgroups)控制组... 查看详情

容器技术之docker数据卷

  前一篇随笔中我们了解了docker的网络相关说明,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/12952616.html;今天我们来聊一聊docker的数据管理相关说明;  在前面的博客中我们有强调过docker的镜像是分层构建的,把镜像启动为容... 查看详情

docker&kubernetes❀docker容器技术笔记链接梳理

Docker的在线安装、离线安装、配置镜像加速器、配置文件参数详解Docker镜像与容器相关操作基础命令详解Dockerimage镜像原理解析与分层理论说明DockerDatavolume数据卷的使用与原理说明DockerFile保留关键字基本使用方法与相关解释Docke... 查看详情

容器技术之dockerfile

  在前边的随笔中我们聊到了docker的基本命令,镜像,网络,存储卷以及基于现有容器制做docker镜像,相关随笔可参考https://www.cnblogs.com/qiuhom-1874/category/1766327.html;今天我们来聊一聊docker的另一个制作镜像的方式dockerfile;  ... 查看详情

docker容器编排原来这么丝滑~

...人原创知识分享,谨记本人博客:南国以南i概念介绍:DockerDocker这个东西所扮演的角色,容易理解,它是一个容器引擎,也就是说实际上我们的容器最终是由Docker创建,运行在Docker中,其他相关的容器技术都是以Docker为基础,... 查看详情

05-docker-容器相关命令

...容器相关的命令容器相关命令查看容器查看正在运行容器dockerps查看所有容器dockerps-a查看所有容器IDdockerps-aq创建容器使用格式dockrrun参数交互运行:centos:7代表–>镜像名:版本号dockerrun-it--namec1centos:7后台运 查看详情

云原生生态圈:docker核心技术全面总结(代码片段)

...f01;大家一起学习,一起进步。本文将分别讲解什么是Docker,如何安装Docker,Docker的镜像操作,Docker容器操作,以实战为线索,逐步深入Docker相关知识,打造完整的Docker学习体系,可查阅,可复... 查看详情

docker容器的自动化监控实现

...品运营经验。 近年来容器技术不断成熟并得到应用。Docker作为容器技术的一个代表,目前也在快速发展中,基于Docker的各种应用也正在普及,与此同时Docker对传统的运维体系也带来了冲击。我们在建设运维平台的过程中,也... 查看详情

win11docker怎么连接容器

win11docker连接容器方法:点击开始按钮,在搜索框里搜索控制面板打开控制面板,又上角的查看方式,改为“小图标”选择左侧的“程序和功能”选项选择“启用或关闭Windows功能”找到“容器”和“Hyper-V”选项,把钩打上。参... 查看详情

docker容器相关命令

...echo‘helloworld’命令,如果当前物理机没有该镜像,则执行dockerpull从DockerHub获取镜像,执行成功后,容器立马停止#sudodockerrunubuntu:14.04/bin/echo‘Helloworld‘参数解释dockerrun:docker中的启动容器命令 查看详情

nvidiajetson之docker容器使用

0背景使用jetson设备开发时,可以应用docker技术来对开发环境进行隔离和封装,便于开发和部署较为复杂的应用。而且在NVIDIANGC上提供了很多L4T版本的docker镜像,用来在jetson设备上应用,降低我们开发难度。本文对相关的内容进... 查看详情

nvidiajetson之docker容器使用

0背景使用jetson设备开发时,可以应用docker技术来对开发环境进行隔离和封装,便于开发和部署较为复杂的应用。而且在NVIDIANGC上提供了很多L4T版本的docker镜像,用来在jetson设备上应用,降低我们开发难度。本文对相关的内容进... 查看详情

docker容器相关

查看容器:dockerps主要有些参数要说一下1.不加参数,表示查看当前正在运行的容器2.-a,查看所有容器包括停止状态的容器3.-l,查看最新创建的容器4.-n=x,查看最后创建的x个容器启动:我们在用dockerps-a的时候会看见一些容器的... 查看详情

管理machine-每天5分钟玩转docker容器技术(47)

用 docker-machine 创建machine的过程很简洁,非常适合多主机环境。除此之外,DockerMachine也提供了一些子命令方便对machine进行管理。其中最常用的就是无需登录到machine就能执行docker相关操作。我们前面学过,要执行远程docker... 查看详情

安装dockermachine-每天5分钟玩转docker容器技术(45)

前面我们的实验环境中只有一个dockerhost,所有的容器都是运行在这一个host上的。但在真正的环境中会有多个host,容器在这些host中启动、运行、停止和销毁,相关容器会通过网络相互通信,无论它们是否位于相同的host。对于这... 查看详情

docker02:docker核心技术探索使用cgroup限制资源的使用(代码片段)

可以限定容器中的虚拟系统对于各种资源的使用,包括cpu,内存,磁盘和网络资源,这需要使用cgroup相关技术来实现。为了使用cgroup相关的功能,我们首先需要将cgroup提供的特殊文件系统cgroup安装到我们的容器中。在容器的/etc/fst... 查看详情

docker技术详解(零基础入门使用教程)(代码片段)

DockerDocker技术简介Docker的应用场景Docker的组成docker进程相关操作docker加速镜像操作运行容器的相关操作访问tomcat镜像备份容器之间的关联Docker技术简介Docker如日中天,这不是单纯的炒的概念,Docker的确解决了开发和运费... 查看详情

常见docker命令-容器操作相关

dockerexec-在容器中执行命令以交互模式进入mynginx容器的bash控制台dockerexec-itmynginxbash以交互模式在mynginx容器中执行/test.shdockerexec-itmynginx/bin/bash/test.dockerps-列 查看详情