
容器
谛听-
线上幽灵
展开
-
轻量级容器程序
阳哥的程序:https://github.com/Pro-YY/jail主进程:argp_parse 解析输入参数。用 root 身份建立了 cgroup(限制一组进程的资源),rlimit(限制一个进程或者一个用户的资源)。调用带 CLONE_NEW* 标志的 clone() 创建子进程。配置网络。写 eventfd,通知子进程,子进程继续执行。向 epoll 中注册信号、超时事...原创 2019-11-06 19:45:51 · 431 阅读 · 0 评论 -
Mount namespaces, mount propagation, and unbindable mounts
在上一期命名空间系列的文章中,我们研究了挂载命名空间和共享子树的基本概念,包括挂载传播类型和对等组的概念。在这篇文章中,我们提供了各种传播类型操作的一些实际演示:MS_SHARED,MS_PRIVATE,MS_SLAVE 和 MS_UNBINDABLE。MS_SHARED 和 MS_PRIVATE 示例正如在上一篇文章中看到的,MS_SHARED 和 MS_PRIVATE 传播类型大致相反。共...翻译 2019-11-04 01:36:24 · 756 阅读 · 0 评论 -
Mount namespaces and shared subtrees
挂载命名空间是创建每-用户和每-容器文件系统树的强大而灵活的工具。本文中,我们将仔细研究共享子树特性,它可通过自动、可控的方式在挂载命名空间之间传播挂载和卸载事件。引言挂载命名空间是第一个添加到 Linux 的命名空间类型,出现在 2002 年的 Linux 2.4.19 中。它们可隔离命名空间中的进程所看到的挂载点列表。换言之,每个挂载命名空间都有自己的挂载点列表,这意味着不同命名空间中的进...翻译 2019-11-03 20:55:40 · 431 阅读 · 0 评论 -
Namespaces in operation, part 7: Network namespaces
自从上次我们研究 Linux 命名空间以来已经有一段时间了。我们的系列缺少了一篇,现在补上:网络命名空间。顾名思义,网络命名空间将网络设备、地址、端口、路由、防火墙规则等的使用划分在不同的盒子,基本上是在一个单独运行的内核实例中虚拟化网络。网络命名空间在 2.6.24 版进入内核,约 5 年前;大概一年后,它们才进入黄金时段。从那以后,它们似乎在很大程度上被开发人员忽略了。基本的网络命名空间管理...翻译 2019-11-03 16:43:36 · 287 阅读 · 0 评论 -
Namespaces in operation, part 6: more on user namespaces
本文中,继续上周关于用户命名空间的讨论。特别的,我们看一下更多有关与用户命名空间、capabilities 的交互及用户命名空间与其它类型的命名空间的结合。本文是命名空间系列的最后一篇。用户命名空间和 capabilities每个进程都会关联特定用户命名空间。一个通过不带 CLONE_NEWUSER 标志的 fork() 或 clone() 创建的进程与父进程位于同一用户命名空间。进程如果在目...翻译 2019-11-02 23:03:24 · 257 阅读 · 0 评论 -
Namespaces in operation, part 5: User namespaces
继续我们的命名空间系列文章,本文看一下用户命名空间,大部分实现于 Linux 3.8。(剩余的工作是 XFS 和其它文件系统中的一些改动;后者在 3.9 被合并)。用户命名空间与用户和组 ID 相映射。这意味着一个进程在某个用户命名空间内的用户和组 ID 可以与用户命名空间外的不同。最重要的是,一个进程可以在一个命名空间外有一个非 0 的用户 ID ,同时在命名空间内有一个为 0 的用户 ID;换...翻译 2019-11-01 11:13:55 · 399 阅读 · 0 评论 -
Namespaces in operation, part 4: more on PID namespaces
在本文中,我们将继续上周关于 PID 命名空间的讨论(并扩展我们正在进行的关于命名空间的系列文章)。PID 命名空间的一个用途是实现一个进程包(容器),其行为类似于一个自包含的 Linux系统。init 进程是传统系统和 PID 命名空间容器的关键部分。因此,我们将研究 init 进程的特殊角色,并着重于它与传统 init 进程不同的几个方面。此外,我们还将研究命名空间 API 应用于 PID 命...翻译 2019-10-30 12:01:40 · 306 阅读 · 0 评论 -
Namespaces in operation, part 1: namespaces overview
Linux 3.8 合并窗口接受了 Eric Biederman 的大量用户命名空间及相关的补丁。尽管仍有一些细节待完成,例如,许多 Linux 文件系统还不知道用户命名空间,但用户命名空间的实现已经在功能上完成了。用户命名空间的完成是一个里程碑。首先,这项工作代表了迄今为止命名空间中最复杂实现之一的完成,因为自从用户命名空间实现首次实现(在Linux2.6.23中)以来,已经有五年左右的时间了...翻译 2019-10-29 19:21:39 · 339 阅读 · 0 评论 -
Namespaces in operation, part 2: the namespaces API
命名空间将全局系统资源包装在一个抽象中,使得命名空间中的进程认为它们拥有独立的资源实例。命名空间可用于多种目的,最重要的是实现容器,一种轻量级虚拟化技术。本系列的第二篇文章将看一下命名空间的一些细节和 API。本系列中的第一篇文章对命名空间进行了总览。本文将看一下命名空间 API 中的一些细节,并在一些例子中展示运行中的 API。命名空间 API 包含三个系统调用:clone(),unshare...翻译 2019-10-29 17:20:32 · 281 阅读 · 0 评论 -
Namespaces in operation, part 3: PID namespaces
接着前两篇命名空间文章(Part 1: namespaces overview and Part 2: the namespaces API),现在看一下 PID 命名空间。与 PID 命名空间相关的全局资源就是进程 ID 数字空间。这意味着在不同 PID 命名空间中的进程可以有相同的进程 ID。PID 命名空间实现的容器可在主机之间迁移,并保持容器内的进程 ID 不变。对于传统 Linux (...翻译 2019-10-28 22:28:38 · 369 阅读 · 0 评论 -
容器基础
基础制作镜像:$ docker build " 我的镜像 "运行镜像:$ docker run " 我的镜像 "多机 Docker 项目:$ docker run -H " 我的 Swarm 集群 API 地址 " " 我的容器 "-it 在容器启动后,分批要给一个 TTY,以进行交互。/bin/sh 是要在容器中运行的程序。$ docker run -it busybox ...原创 2019-04-21 19:17:12 · 286 阅读 · 1 评论 -
docker入门
官方教程:https://docs.docker.com/get-started/ docker安装与部署: https://baijiahao.baidu.com/s?id=1605863065322627238&wfr=spider&for=pc Docker-Toolbox常见问题解决方案: https://blog.youkuaiyun.com/gezhonglei2007/...原创 2018-07-17 12:24:53 · 192 阅读 · 0 评论