ubuntu 14.04 体验LXC非特权容器

LXC 1.0 最大的特性是非特权容器,通过巧妙的uidmap,将物理机的普通用户(uid和gid)映射成容器里的root(uid=0,gid=0),极大的提高了lxc的安全性。

LXC 1.0 对内核和python版本有要求,故下文以 ubuntu 14.04 为例,使用普通用户dell创建非特权的lxc容器。

(以下操作,非特别说明,均为root权限操作,命令提示符为#号)

1、安装lxc

apt-get install lxc uidmap

2、创建普通用户

useradd -m dell
mkdir -p /home/dell/.local/share/lxc
mkdir -p /home/dell.config/lxc

3、配置uidmap

usermod -v 10000-65535 dell
usermod -w 10000-65535 dell
echo "lxc.id_map = u 0 10000 65535" >> /etc/lxc/default.conf
echo "lxc.id_map =g 0 10000 65535" >> /etc/lxc/default.conf

4、修改lxc配置

echo "dell veth lxcbr0 10" >> /etc/lxc/lxc-usernet
cat /etc/lxc/lxc-usernet >/home/dell/.config/lxc/default.conf

5、修正权限

chmod +x /home/dell
chown -R dell:dell /home/dell

6、以dell身份登录,创建容器

非特权容器创建有点区别,它使用一个download模板,去下载指定的已打包好的完整系统,而非使用apt/yum

lxc-create -n my-ubuntu -t download

-n 意思是--name,容器的名字

-t 意思是 --template,指定使用哪个模板

接下来会出现文本对话,模板包含主流的发行版,centos/debian/ubuntu等,选择自己需要的发行版,版本号,CPU架构 。

ubuntu 对非特权容器支持很好,这里选择ubuntu trusty amd64,(centos 6 可以创建,但是启动遇到未知故障。)

也可以使用下面的命令,跳过对话,直接安装ubuntu非特权容器

lxc-create -t download -n my-ubuntu -- -d ubuntu -r trusty -a amd64

ubuntu模板系统默认的用户和密码均是ubuntu,可以sudo 。

7、查看刚刚创建的非特权容器

lxc-ls

8、启动非特权容器

lxc-start -n my-ubuntu

9、小技巧

a、让容器随系统启动

开机启动

$ echo "lxc.start.auto = 1" >>/home/dell/.local/share/lxc/my-ubuntu/config

开机延时启动

$ echo "lxc.start.delay = 5" >>/home/dell/.local/share/lxc/my-ubuntu/config

b、限制容器的资源

限CPU

$ echo "lxc.cgroup.cpu.shares  = 256" >>/home/dell/.local/share/lxc/my-ubuntu/config

限内存

$ echo "lxc.cgroup.memory.limit_in_bytes = 1024M" >>/home/dell/.local/share/lxc/my-ubuntu/config

限磁盘IO

$ echo "lxc.cgroup.blkio.weight = 500" >>/home/dell/.local/share/lxc/my-ubuntu/config

时间: 2024-08-01 18:20:22

ubuntu 14.04 体验LXC非特权容器的相关文章

【原生态跨平台:ASP.NET Core 1.0(非Mono)在 Ubuntu 14.04 服务器上一对一的配置实现-篇幅2】

在 [原生态跨平台:ASP.NET Core 1.0(非Mono)在 Ubuntu 14.04 服务器上一对一的配置实现-篇幅1] 环境:Ubuntu 14.04 服务器版 虚拟机:Vmware 10 工具 :XShell 开发工具:VS2015企业版+ASP.NET Update1 反向代理:Nginx 是否用到了Docker?没,墙太高了,镜像拉不过来,秒懂!???!?!?! 已经都讲了,小编,你懂滴~~~

分布式进阶(二)Ubuntu 14.04下安装Dockr图文教程(一)

当前,完全硬件虚拟化技术(KVM.Xen.Hyper-V 等)能在一个物理主机上很好地运行多个互相独立的操作系统,但这也带来一些问题:性能不佳,资源浪费,系统反应迟缓等.有时候对用户来说,完全的硬件虚拟化并不是最好的选择. 一种替代方案是使用轻量级虚拟化技术 -- 所谓的 LinuX Container 容器 (LXC),它提供的是系统级虚拟化.与跑虚拟机相比,LXC 可以在一个轻量级沙箱容器里面跑多个 Linux 操作系统.当你需要设置一些易于克隆的开发环境.测试环境,或想在安全沙盒里安装应用

如何在 Ubuntu 14.04 里面配置 chroot 环境

你可能会有很多理由想要把一个应用.一个用户或者一个环境与你的 Linux 系统隔离开来.不同的操作系统有不同的实现方式,而在 Linux 中,一个典型的方式就是 chroot 环境. 在这份教程中,我会一步一步指导你怎么使用 chroot 命令去配置一个与真实系统分离出来的独立环境.这个功能主要可以用于测试项目,以下这些步骤都在 Ubuntu 14.04 虚拟专用服务器(VPS)上执行. 学会快速搭建一个简单的 chroot 环境是一项非常实用的技能,绝大多数系统管理员都能从中受益. Chroo

阿里云 Ubuntu 14.04 JavaWeb 应用部署

最近双11阿里云云服务器ECS搞活动,之前一直想买个服务器来玩一玩,正好最近阿里云有优惠,就买了个域名和ECS服务器来倒腾倒腾了. 我先是在万网上面购买了一个域名,然后在阿里云ECS购买了一个ECS服务器,配置如下: CPU:1核 RAM:512M 操作系统:ubuntu 14.04 带宽:1M 因为主要是为了体验一把,所以所有的配置都是买的最低配置,而且宽带也是选择了按量计费,在流量使用较低的情况下,能比按月计费少一些支出.大家可以酌情选择. 好了废话不多说,接下来就讲讲我环境搭建的步骤. 1

在Ubuntu 14.04安装Nginx

###介绍 Nginx是世界上最流行的网络服务器中的一种,负责托管网络上一些流量最高的网站.在多数情况下,Nginx比Apache在资源上更加友好,可以作为网络服务器或反向代理服务器. 这篇教程中,我们将讨论怎样在Ubuntu 14.04服务器上安装Nginx. ###预备工作 在开始这篇教程前,你的服务器上应该已经有了普通非根用户,并配置了`sudo`权限.也可以在我们的[Ubuntu 14.04初始服务器设置指南](https://www.digitalocean.com/community

Drupal8系列(一):简述-Ubuntu 14.04 LTS

在大致了解了Drupal7是如何工作之后,由于出于对syfmony2的偏爱,更多的是主题引擎Twig的偏爱,还是将目光转向了Drupal8,这个在官网上声称将让所有人都爱上它的版本.虽然还是Alpha版,但已经可以用它来实现很多的功能了,这在流行的第三方模块和主题相继支持Drupal8后表现的尤为突出. 这一篇博文之所以出现,与其说是介绍Drupal8,还不如讲是坚定我使用Drupal8的决心,毕竟Drupal7还是相当好用的.:) Drupal8宣称自己提供了超过200个新的功能和改进,并将自

[Linux 小技巧] Ubuntu 14.04 下编译、安装、配置最新开发版 GoldenDict

1. 背景介绍 GoldenDict 是一款非常优秀的跨平台电子词典软件,支持 StarDict.Babylon 等多种词典.其 PC 版基于 Qt 编写,完全免费.开源且没有广告.GoldenDict 的 Android 版是另外一个全新实现的系统,采用了付费版去广告.免费版显示广告的策略,这里就不详细讨论了. GoldenDict 在 GitHub 上的地址是 https://github.com/goldendict/goldendict,截至目前(2015-10-17)已经有 1872

Ubuntu 14.04 编译 Android 4.2.2 for Tiny4412

. . . . . 在学校里是用 Redhat 6.4 编译的 Android 4.2.2 很顺利,把源码包拷贝到笔记本上的 Ubuntu 14.04 上再编译遭遇了各种坑,所以便有了这篇博客记录解决每一个坑的过程.所幸这些坑解决起来还不算复杂,稍微 Google 一下就找到了解决方案. 1.首先是安装 JDK 和 arm-linux-gcc 工具链,这两步只是解压缩之后配置环境变量就行了,所以这里就不再赘述了. 注意 JDK 必须采用 1.6 版本的,据说 android 4.x 都需要使用标

Ubuntu 14.04 启用休眠

Ubuntu 14.04 启用休眠 Ubuntu 14.04 默认不启用关机菜单中的休眠选项.前提是要有swap分区(网上查询,未验证是否一定需要.PS:swap要不小于物理内存)不过首先最好还是确认一下是不否可以正常休眠:终端: sudo pm-hibernate 如果可以正常休眠,并成功唤醒,可以确定是能够正常休眠的.(通常应该都是可以的,自己的电脑上没有问题:神舟Q480S)接下来在root用户下修改文件.(如果没有启用root用户,可以终端中添加root密码:sudo passwd添加,