Docker
文章平均质量分 88
云原生实战指南
小白也看得懂的云原生指南
展开
-
光K8S的目录结构就够你学一天!
由于Kubernetes项目全球开发者众多,这导致早期的代码包较多,尤其是kube-apiserver项目,其内部所引用的代码包特别多。随着Kubernetes系统版本的迭代,逐渐将部分包进行了合并,其中staging/目录为核心包暂存目录,该目录下的核心包多以软连接的方式链接到vendor/k8s.io目录。Go语言官方对项目的结构设计没有强制要求,早期的Go语言开发者都喜欢将包文件代码放置在项目的src/目录下,如nsqio开源项目,开发者喜欢将入口文件放入apps/目录。原创 2024-01-15 17:59:27 · 444 阅读 · 0 评论 -
Docker实战10|实现volum数据卷
上一篇文章中,仔细讲解了Docker是如何改变当前的root文件系统以及mount等操作。本文继续讲解Docker是如何实现Volum数据卷的。原创 2024-01-10 13:57:15 · 1062 阅读 · 0 评论 -
Docker实战09|使用AUFS包装busybox
以上三篇主要实现了。接下来的时间会和大家一起学习Docker是如何构造镜像的。原创 2024-01-09 15:08:52 · 1110 阅读 · 0 评论 -
Docker实战08|Docker管道及环境变量识别
上一篇文章中,讲解了如何通过Go语言实现对Docker Cgroup的资源限制具体文章可见有需要的小伙伴可以回顾一下。接下来本文会详细介绍一下Docker 管道及环境变量识别。原创 2024-01-09 10:00:06 · 726 阅读 · 1 评论 -
Docker实战07|Docker增加容器资源限制
前几篇中,对Cgroups包含的3个概念进行了介绍,这里做如下简单回顾。• cgroup hierarchy中的节点,用于管理进程和subsystem的控制关系。• subsystem作用于hierarchy上的cgroup节点,并控制节点中进程的资源占用。• hierarchy将cgroup通过树状结构串起来,并通过虚拟文件系统的方式暴露给用户。根据上面3个概念的关系,先创建出如下的数据结构。见。原创 2024-01-08 12:53:08 · 1102 阅读 · 0 评论 -
Docker实战06|深入剖析Docker Run命令
Linux下的/proc文件系统是由内核提供的,它其实不是一个真正的文件系统,只包含了系统运行时的信息(比如系统内存、mount设备信息、一些硬件配直等),它只存在于内存中,而不占用外存空间。它以文件系统的形式,为访问内核数据的操作提供接口。实际上,很多系统工具都是简单地去读取这个文件系统的某个文件内容,比如lsmod,其实就是cat /proc/modules。当遍历这个目录的时候,会发现很多数字,这些都是为每个进程创建的空间,数字就是它们的PID。原创 2024-01-08 12:52:35 · 1501 阅读 · 0 评论 -
Docker实战05|Docker构建流程分析
在上一文中主要介绍了Cgroups基本原理以及实现。相信读完以后可以更加深入的了解Linux Cgroups的底层实现原理了。本文继续针对Docker 在构建时都干了哪些事情做一些详细的讲解。原创 2024-01-06 20:30:44 · 962 阅读 · 0 评论 -
Docker实战04|Union File System
在上一文中主要介绍了Cgroups基本原理以及实现。相信读完以后可以更加深入的了解Linux Cgroups的底层实现原理了。本文继续针对Docker 在构建时都干了哪些事情做一些详细的讲解。原创 2024-01-06 10:19:23 · 369 阅读 · 0 评论 -
Docker实战03|Cgroups
在上一文中,主要讲述了构建Linux容器的Namespace技术,它帮助进程隔离出自己单独的空间,但Docker是怎么限制每个空间的大小,保证它们不会互相争抢的呢?这就要用到Linux的Cgroups技术。Cgroups 是 Linux 下的一种将进程按组进行管理的机制,它提供了对一组进程及将来子进程的资源限制控制和统计的能力。这些资源包括 CPU、内存、存储、网络等。通过 Cgroups 可以方便地限制某个进程的资源占用,并且可以实时地监控进程的监控与统计信息。原创 2024-01-04 14:53:13 · 1441 阅读 · 0 评论 -
Docker实战02|Namespace
我们经常听到,Docker是一个使用了LinuxNamespace和Cgroups的虚拟化工具。但是,什么是LinuxNamespace,它在Docker内是怎么被使用的?说到这里,很多人就会迷茫。下面就先来介绍一下LinuxNamespace及它们是如何在容器中使用的。原创 2024-01-03 19:08:17 · 973 阅读 · 0 评论 -
Docker实战01|容器与开发语言
Docker 是一个开源工具,它可以将你的应用打包成一个标准格式的镜像,并且以容器的方式运行。Docker 容器将一系列软件包装在一个完整的文件系统中,这个文件系统包含应用程序运行所需要的一切:代码、运行时工具、系统工具、系统依赖,几乎有任何可以安装在服务器上的东西。这些策略保证了容器内应用程序运行环境的稳定性,不会被容器外的系统环境所影响。Docker 容器具有以下 3 个特点。轻量级:在同一台宿主机上的容器共享系统 Kernel,这使得它们可以迅速启动而且占用内存极少。原创 2024-01-03 12:06:57 · 862 阅读 · 0 评论