这是 LXD 2.0 系列介绍文章的第八篇。

  1. LXD 入门
  2. 安装与配置
  3. 你的第一个 LXD 容器
  4. 资源控制
  5. 镜像管理
  6. 远程主机及容器迁移
  7. LXD 中的 Docker

介绍

在上一篇文章中,我介绍了如何在 LXD 中运行 Docker,这是一个访问由 Docker 提供的应用程序组合的很好方式,同时 Docker 还运行在 LXD 提供的安全环境中。

我提到的一个情况是为你的用户提供一个 LXD 容器,然后让他们使用他们的容器来运行 Docker。那么,如果他们自己想要在其容器中使用 LXD 运行其他 Linux 发行版,或者甚至允许另一组人来访问运行在他们的容器中的 Linux 系统呢?

原来 LXD 使得用户运行嵌套容器变得非常简单。

嵌套 LXD

最简单的情况可以使用 Ubuntu 16.04 镜像来展示。 Ubuntu 16.04 云镜像预装了 LXD。守护进程本身没有运行,因为它是由套接字激活的,所以它不使用任何资源,直到你真正使用它。

让我们启动一个启用了嵌套的 Ubuntu 16.04 容器:

  1. lxc launch ubuntu-daily:16.04 c1 -c security.nesting=true

你也可以在一个已有的容器上设置 security.nesting:

  1. lxc config set <container name> security.nesting true

或者对所有的容器使用一个指定的配置文件:

  1. lxc profile set <profile name> security.nesting true

容器启动后,你可以从容器内部得到一个 shell,配置 LXD 并生成一个容器:

  1. stgraber@dakara:~$ lxc launch ubuntu-daily:16.04 c1 -c security.nesting=true
  2. Creating c1
  3. Starting c1
  4. stgraber@dakara:~$ lxc exec c1 bash
  5. root@c1:~# lxd init
  6. Name of the storage backend to use (dir or zfs): dir
  7. We detected that you are running inside an unprivileged container.
  8. This means that unless you manually configured your host otherwise,
  9. you will not have enough uid and gid to allocate to your containers.
  10. LXD can re-use your container's own allocation to avoid the problem.
  11. Doing so makes your nested containers slightly less safe as they could
  12. in theory attack their parent container and gain more privileges than
  13. they otherwise would.
  14. Would you like to have your containers share their parent's allocation (yes/no)? yes
  15. Would you like LXD to be available over the network (yes/no)? no
  16. Do you want to configure the LXD bridge (yes/no)? yes
  17. Warning: Stopping lxd.service, but it can still be activated by:
  18. lxd.socket
  19. LXD has been successfully configured.
  20. root@c1:~# lxc launch ubuntu:14.04 trusty
  21. Generating a client certificate. This may take a minute...
  22. If this is your first time using LXD, you should also run: sudo lxd init
  23. Creating trusty
  24. Retrieving image: 100%
  25. Starting trusty
  26. root@c1:~# lxc list
  27. +--------+---------+-----------------------+----------------------------------------------+------------+-----------+
  28. |  NAME  |  STATE  |         IPV4          |                     IPV6                     |    TYPE    | SNAPSHOTS |
  29. +--------+---------+-----------------------+----------------------------------------------+------------+-----------+
  30. | trusty | RUNNING | 10.153.141.124 (eth0) | fd7:f15d:d1d6:da14:216:3eff:fef1:4002 (eth0) | PERSISTENT | 0         |
  31. +--------+---------+-----------------------+----------------------------------------------+------------+-----------+
  32. root@c1:~#

就是这样简单。

在线演示服务器

因为这篇文章很短,我想我会花一点时间谈论我们运行中的演示服务器。我们今天早些时候刚刚达到了 10000 个会话!

这个服务器基本上只是一个运行在一个相当强大的虚拟机上的正常的 LXD,一个小型的守护进程实现了我们的网站所使用的 REST API。

当你接受服务条款时,将为你创建一个新的 LXD 容器,并启用 security.nesting,如上所述。接着你就像使用 lxc exec 时一样连接到了那个容器,除了我们使用 websockets 和 javascript 来做这些。

你在此环境中创建的容器都是嵌套的 LXD 容器。如果你想,你可以进一步地嵌套。

我们全范围地使用了 LXD 资源限制,以防止一个用户的行为影响其他用户,并仔细监控服务器的任何滥用迹象。

如果你想运行自己的类似的服务器,你可以获取我们的网站和守护进程的代码:

  1. git clone https://github.com/lxc/linuxcontainers.org
  2. git clone https://github.com/lxc/lxd-demo-server

作者:Stéphane Graber
来源:51CTO

LXD 2.0 系列(八):LXD中的LXD相关推荐

  1. LXD 2.0 系列(一):LXD 入门

  2. LXD 2.0系列之一:LXD简介

    本文讲的是LXD 2.0系列之一:LXD简介, [编者的话] 第三方调查报告 显示LXD有潜质成为一款受欢迎的第三方容器管理工具.本文是LXD核心维护者.加拿大程序员Stéphane Graber有关 ...

  3. LXD 2.0系列之二:LXD安装和配置

    本文讲的是LXD 2.0系列之二:LXD安装和配置, [编者的话] 第三方调查报告 显示LXD有潜质成为一款受欢迎的第三方容器管理工具.本文是LXD核心维护者.加拿大程序员Stéphane Grabe ...

  4. LXD 2.0 系列(三):你的第一个 LXD 容器

    这是 LXD 2.0 系列介绍文章的第三篇博客. LXD 入门 安装与配置 你的第一个 LXD 容器 资源控制 镜像管理 远程主机及容器迁移 LXD 中的 Docker LXD 中的 LXD 实时迁移 ...

  5. LXD 2.0 系列(十二):调试,及给 LXD 做贡献

    介绍 终于要结束了!这个大约一年前开始的这系列文章的最后一篇博文. LXD 入门 安装与配置 你的第一个 LXD 容器 资源控制 镜像管理 远程主机及容器迁移 LXD 中的 Docker LXD 中的 ...

  6. Microsoft Enterprise Library 5.0 系列(八) Unity Dependency Injection and Interception

    依赖注入容器Unity: Unity的构造类似于Castle中的IOC(控制反转 或者叫依赖注入)容器,我们使用抽象接口来隔离使用者和具体实现之间的依赖关系,但是不管再怎么抽象,最终还是要创建具体实现 ...

  7. Ubuntu 20中在LXD容器内安装ROS

    快速构建并销毁一个完整的ROS套件. 关于容器的更多细节可以参考linuxcontainer.org 配置容器 基础lxd创建工作 安装lxd ~$ sudo snap install lxd 安装后 ...

  8. 艾伟_转载:VS 2010 和 .NET 4.0 系列之《在ASP.NET 4 Web Forms中实现URL导向》篇

    本系列文章导航 VS 2010 和 .NET 4.0 系列之<ASP.NET 4 中的SEO改进 >篇 VS 2010 和 .NET 4.0 系列之<干净的Web.Config文件 ...

  9. c语言 连通域算法 递归,VC++ 6.0编写计算机图形学中的种子填充算法,想用递归的八向连通域,求助!...

    VC++ 6.0编写计算机图形学中的种子填充算法,想用递归的八向连通域,求助!0 填充函数代码如下: void CComputerGraphicsView::PolygonFill2()//区域填充函 ...

最新文章

  1. php中类的构造函数是,PHP 类的构造函数和析构函数
  2. @resource 与 @autowired
  3. 博客会被搬去csdn
  4. 【学习笔记】产品成本计划(Product Cost Planning)02
  5. JZOJ 5275. 水管
  6. 通过JS如何获取IP地址
  7. android.intent.category.DEFAULT和LAUNCHER
  8. Tomcat配置虚拟内存
  9. java代码测试---插入排序和选择排序
  10. 界面设计方法 (2) — 4.界面设计的原则与标准
  11. 读《人月神话》有感2
  12. Oracle 修改表空间文件路径
  13. 天津科技大学计算机科学与技术专业怎么样,2021年天津科技大学重点专业排名有哪些,招生优势专业排行榜...
  14. itk_option
  15. 小白学开发(iOS)OC_ SEL数据类型(2015-08-10)
  16. 多个PDF合并后页面大小不一
  17. Android 视频缩放/放大
  18. js中submit失效
  19. 分享一个很香的k8s.gcr.io Docker镜像拉取方法
  20. 计算机联锁想系统包括哪几层,计算机联锁系统技术_习题.ppt

热门文章

  1. ASP.NET购物车(源码下载)
  2. matlab狐狸与野兔数学模型,狐狸与兔子数学模型的论文
  3. 【通信仿真】基于matlab空时自适应处理降维仿真【含Matlab源码 1957期】
  4. IP Camera 和 Web Camera 差分
  5. python爬取知网论文关键词_Python爬虫根据关键词爬取知网论文摘要并保存到数据库中【入门必学】...
  6. 求小于或等于lim的所有素数,将其存放在aa数组中,并返回所求的素数个数
  7. 如何包容青春期叛逆的孩子?
  8. 杨婷:腾讯云在线教育解决方案分享
  9. Vue3.x动态路由、命名路由和编程式导航
  10. 七夕python小礼物