linux轻量级容器化解决方案
asylum的Python项目详细描述
庇护
==
intro
----
一个lib来直接使用来自linux的unshare/clone系统调用。同时
还为专门为使用它而编写的应用程序提供对seccomp的支持
《快速入门指南》
----
环境
$virtualenv env
$。env/bin/activate
$python./setup.py install
终端。要确认庇护已经完全隔离了
环境,请尝试在庇护监狱中设置主机名,并确认
系统的主机名没有更改
*网络模拟进入python程序。
为现有的python程序提供强大的简单原语
在可能的情况下,使用这些替换项(如pep-3143)
。提供一个类似virtualenv的工具来创建和运行虚拟环境。为低级系统调用提供包装器
隔离
*prctl syscall
*clone/unshare syscall支持
选项
*记录命名空间状态/查询状态(开始/停止)
*可选的管理守护程序
*管理守护程序的可选Web界面
*基本映像设置挂钩
*命令定向的命令行参数(类似于virtualenv)
*插件支持
*配置文件支持
*重新连接到正在运行的名称空间(setns)
如有要求,可提供对其他ARCH的支持。这个syscall常量只需要更新
*python>;=3.0
*argparse模块
or
*python>;=3.2
or
*python>;=2.7
*pypypyy>;=1.5
编译一个支持命名空间的内核
如果您的Linux内核没有所需的功能,那么您可以通过下载发行版的源包
并编译一个内核来编译自己的内核您自己。
如果您使用图形工具(例如通过键入"make nconfig"启动的工具),则需要确保启用以下选项
IPC名称空间
-->;用户名称空间
-->;PID名称空间
-->;网络名称空间
cgroup
++++++
常规设置
-->;控制组支持
-->;根据需要启用选项
如果调用"make config"来设置所需选项或编辑现有的
内核配置(例如从/proc/config或/proc/config.gz获取的配置),则g您需要更改的选项可以通过运行"庇护-d"来
执行设置的自动检测,并列出其名称和当前状态
您可能希望启用基本路由支持(默认情况下为normaly启用)
以及etun和macvlan支持。seccomp支持
networking
++++++++使seccomp能够安全地计算不受信任的字节码
notes
----
内核文档/手册页并不总是与linux所做的完全一致,一些系统调用会不正确地引发eperm(例如pivot_root和ebusy)。在
posible中,我尝试将所有的边案例放入异常消息或src中的
注释中,但是如果您找到新的边案例,请尽快通知我
code@pocketnix.org
网络和机器主机名和域的概念,您可以在不影响主工作区的情况下对主机名和接口进行更改。由于这些是轻量级的,您可以轻松创建
100个名称空间来执行创建虚拟网络之类的操作。
要在名称空间之间创建网络"管道",请查看vtun
或参阅http://www.pocketnix.org上的文档(即将发布)。
要在多个命名空间之间共享主以太网接口,如果希望在来宾命名空间中使用
tcpdump或dhcp等功能,建议使用macvlan,否则路由可能就足够了
$sudo ipython
>;>;导入庇护
uts(核心域名)和net名称空间
>;>>庇护。隔离(无、假、假、真、假、真、真、真)
>;>!ip ad sh
13:lo:<;loopback>;mtu 16436 qdisc noop state down
link/loopback 00:00:00:00:00 brd 00:00:00:00
14:sit0:<;noarp>;mtu 1480 qdisc noop state down
link/sit 0.0.0 brd 0.0
>>>;!主机名thisistest!domainname example.com现在转到一个单独的终端并输入以下
$hostname;domainname
socket.gethostname()
"thisisatest"
或者发邮件给code@pocketnix.org
对于我的代码质量的功能请求和评论也是如此。
如果您在生产中使用此功能,请告诉我:d
==
intro
----
一个lib来直接使用来自linux的unshare/clone系统调用。同时
还为专门为使用它而编写的应用程序提供对seccomp的支持
《快速入门指南》
----
环境
$virtualenv env
$。env/bin/activate
$python./setup.py install
终端。要确认庇护已经完全隔离了
环境,请尝试在庇护监狱中设置主机名,并确认
系统的主机名没有更改
*网络模拟进入python程序。
为现有的python程序提供强大的简单原语
在可能的情况下,使用这些替换项(如pep-3143)
。提供一个类似virtualenv的工具来创建和运行虚拟环境。为低级系统调用提供包装器
隔离
*prctl syscall
*clone/unshare syscall支持
选项
*记录命名空间状态/查询状态(开始/停止)
*可选的管理守护程序
*管理守护程序的可选Web界面
*基本映像设置挂钩
*命令定向的命令行参数(类似于virtualenv)
*插件支持
*配置文件支持
*重新连接到正在运行的名称空间(setns)
如有要求,可提供对其他ARCH的支持。这个syscall常量只需要更新
*python>;=3.0
*argparse模块
or
*python>;=3.2
or
*python>;=2.7
*pypypyy>;=1.5
编译一个支持命名空间的内核
如果您的Linux内核没有所需的功能,那么您可以通过下载发行版的源包
并编译一个内核来编译自己的内核您自己。
如果您使用图形工具(例如通过键入"make nconfig"启动的工具),则需要确保启用以下选项
IPC名称空间
-->;用户名称空间
-->;PID名称空间
-->;网络名称空间
cgroup
++++++
常规设置
-->;控制组支持
-->;根据需要启用选项
如果调用"make config"来设置所需选项或编辑现有的
内核配置(例如从/proc/config或/proc/config.gz获取的配置),则g您需要更改的选项可以通过运行"庇护-d"来
执行设置的自动检测,并列出其名称和当前状态
您可能希望启用基本路由支持(默认情况下为normaly启用)
以及etun和macvlan支持。seccomp支持
networking
++++++++使seccomp能够安全地计算不受信任的字节码
notes
----
内核文档/手册页并不总是与linux所做的完全一致,一些系统调用会不正确地引发eperm(例如pivot_root和ebusy)。在
posible中,我尝试将所有的边案例放入异常消息或src中的
注释中,但是如果您找到新的边案例,请尽快通知我
code@pocketnix.org
网络和机器主机名和域的概念,您可以在不影响主工作区的情况下对主机名和接口进行更改。由于这些是轻量级的,您可以轻松创建
100个名称空间来执行创建虚拟网络之类的操作。
要在名称空间之间创建网络"管道",请查看vtun
或参阅http://www.pocketnix.org上的文档(即将发布)。
要在多个命名空间之间共享主以太网接口,如果希望在来宾命名空间中使用
tcpdump或dhcp等功能,建议使用macvlan,否则路由可能就足够了
$sudo ipython
>;>;导入庇护
uts(核心域名)和net名称空间
>;>>庇护。隔离(无、假、假、真、假、真、真、真)
>;>!ip ad sh
13:lo:<;loopback>;mtu 16436 qdisc noop state down
link/loopback 00:00:00:00:00 brd 00:00:00:00
14:sit0:<;noarp>;mtu 1480 qdisc noop state down
link/sit 0.0.0 brd 0.0
>>>;!主机名thisistest!domainname example.com现在转到一个单独的终端并输入以下
$hostname;domainname
socket.gethostname()
"thisisatest"
或者发邮件给code@pocketnix.org
对于我的代码质量的功能请求和评论也是如此。
如果您在生产中使用此功能,请告诉我:d