docker LXC

一、概述

LXC,其名称来自Linux软件容器(Linux Containers)的缩写,一种操作系统层虚拟化(Operating system–level virtualization)技术。LXC利用cgroups与namespace的功能,提供应用软件一个独立的操作系统环境。LXC不需要Hypervisor这个软件层,软件容器(Container)本身极为轻量化,提升了创建虚拟机的速度。软件Docker被用来管理LXC的环境。

二、特点

目前的LXC使用下列内核功能来控制进程:

  • 内核命名空间(ipc, uts, mount, pid, network和user)
  • AppArmor和SELinux配置
  • Seccomp策略
  • chroot(使用pivot_root)
  • Kernel Capibilities
  • 控制组(cgroups)

因此,LXC通常被认为介于“加强版”的chroot和完全成熟的虚拟机之间的技术。LXC的目标是创建一个尽可能与标准安装的Linux相同但又不需要分离内核的环境。

三、安装

Ubuntu,系统,建议用 Ubuntu 14.04 LTS或者更高,安装方法为:

sudo apt-get install lxc
安装完成后,系统会包括所有的LXC命令,

四、普通用户创建unprivileged容器

Unprivileged容器是安全感的容器,他使用一种映射把uid 和 gid映射到容器,这意味着容器内部的uid 0 (root)对应的外部uid 可能是10000 ,如该用户想脱离容器在容器外部执行操作,它会发现是一个无权限用户。这也意味着以下的命令无法执行:

  • mounting文件系统
  • 创建设备节点
  • uid/gid的容器外部操作

1、首先,你要确保你的用户已经定义uid 和 gid的映射,在/etc/subuid 和 /etc/subgid内。
2、其次是/etc/lxc/lxc-usernet,这个文件用来定义非特权用户(unprivileged)的网络限制。
这里写图片描述
默认情况下,你的用户不允许在主机上创建网络设备,通下面的命令可以改变这个设置:

your-username veth lxcbr0 10

这里写图片描述
这意味着vito用户,允许创建10个veth设备连接到lxcbr0网桥。

3、创建LXC配置文件
- 创建文件夹 ~/.config/lxc ,如果不存在,创建
- 复制 /etc/lxc/default.conf to ~/.config/lxc/default.conf
- 添加下面的两行到文件中:

lxc.id_map = u 0 100000 65536
lxc.id_map = g 0 100000 65536

在创建容器以前,先重新启动你的计算机。

4、现在开始创建你的容器了
输入命令:

lxc-create -t download -n my-container

这里写图片描述
这里写图片描述

5、启动容器

lxc-start -n my-container -d

6、确认容器状态

lxc-info -n my-container
lxc-ls -f

7、打开容器内的shell

lxc-attach -n my-container

8、停止容器

lxc-stop -n my-container

9、删除容器

lxc-destroy -n my-container

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值