终于在deepin上跑起来lxd了,晒一下
Tofloor
poster avatar
Feng Yu
deepin
2016-11-19 08:05
Author
首先先看看效果,几个容器全开,也占不了多少内存。
折腾了快一天了,总算搞起来了。


  1. lxc list
  2. +---------------+---------+---------------------+----------------------------------------------+------------+-----------+
  3. |     NAME      |  STATE  |        IPV4         |                     IPV6                     |    TYPE    | SNAPSHOTS |
  4. +---------------+---------+---------------------+----------------------------------------------+------------+-----------+
  5. | centos6       | RUNNING | 10.54.46.127 (eth0) | fd42:20c0:8696:546:216:3eff:feb8:af5c (eth0) | PERSISTENT | 0         |
  6. +---------------+---------+---------------------+----------------------------------------------+------------+-----------+
  7. | centos7       | RUNNING | 10.54.46.130 (eth0) | fd42:20c0:8696:546:216:3eff:feae:3681 (eth0) | PERSISTENT | 0         |
  8. +---------------+---------+---------------------+----------------------------------------------+------------+-----------+
  9. | debian8       | RUNNING | 10.54.46.152 (eth0) | fd42:20c0:8696:546:216:3eff:fe77:b416 (eth0) | PERSISTENT | 0         |
  10. +---------------+---------+---------------------+----------------------------------------------+------------+-----------+
  11. | ubuntu-trusty | RUNNING | 10.54.46.245 (eth0) | fd42:20c0:8696:546:216:3eff:fe47:71ac (eth0) | PERSISTENT | 0         |
  12. +---------------+---------+---------------------+----------------------------------------------+------------+-----------+
  13. | ubuntu-xenial | RUNNING | 10.54.46.201 (eth0) | fd42:20c0:8696:546:216:3eff:fe5f:9b78 (eth0) | PERSISTENT | 0         |
  14. +---------------+---------+---------------------+----------------------------------------------+------------+-----------+
Copy the Code
  1. $ free -h
  2.               total        used        free      shared  buff/cache   available
  3. Mem:           7.7G        4.0G        212M        405M        3.5G        3.0G
  4. Swap:            0B          0B          0B
Copy the Code


然后说下怎么搞,首先源码编译直接放弃,源码编译用到了go,而go的几个类库要从golang.org走,被墙了,所以直接放弃(尽管可以通过hosts,但是为了简便起见就不弄了)。


然后用ubuntu官方编译好的,就添加ubuntu的ppa好了:
  1. sudo add-apt-repository -y ppa:ubuntu-lxc/lxd-stable
Copy the Code
这里执行完是不能用的,sources.list里面写的是ubuntu 17.04的开发代号,需要改为16.04的(xenial),顺便把ppa仓库换成中科大的镜像站以加速。
  1. echo 'deb http://launchpad.proxy.ustclug.org/ubuntu-lxc/lxd-stable/ubuntu xenial main' | sudo tee /etc/apt/sources.list.d/ubuntu-lxc-ubuntu-lxd-stable-zesty.list
Copy the Code
后面这一步最重要,也是折腾到快晚上才搞定的东西,就是调整apt的policy,让lxc系列的安装包走ubuntu的ppa,而不是从deepin的仓库安装,默认情况下deepin的仓库优先级会高于ppa,导致安装到最后因为依赖问题失败。

向/etc/apt/preferences文件写入以下内容,降低deepin仓库的优先级(即包名冲突的情况下,使用第三方仓库的版本,而非deepin的仓库):
  1. Package: *
  2. Pin: release l=Deepin
  3. Pin-Priority: 400
Copy the Code
之后刷新仓库安装lxd即可:
  1. sudo apt update; sudo apt install -y lxd
Copy the Code
后面就完全按照lxd的手册操作即可,如果需要使用zfs的话,需要自行安装zfsutil-linux包。

最后,希望deepin把lxd收入仓库中,就不用这么折腾了。
Reply Favorite View the author
All Replies
isunny
deepin
2016-11-19 14:56
#1
我在上面好像看到了你提到 添加  ppa 的动作    问题是 deepin不是只支持ppa吗?
Reply View the author
Feng Yu
deepin
2016-11-19 18:28
#2
https://bbs.deepin.org/post/132240
我在上面好像看到了你提到 添加  ppa 的动作    问题是 deepin不是只支持ppa吗? ...

加ppa可以,但不保证一定能工作,有时候需要做一些hack的操作,比如改开发代号,修正一些依赖等等
Reply View the author
ghostry
deepin
2016-11-19 18:44
#3
好像很牛的样子,
Reply View the author
132******13
deepin
2016-11-19 18:44
#4
厉害了word哥,LXD目前只有Ubuntu支持吗?
Reply View the author
方老四
deepin
2016-11-19 18:54
#5
本帖最后由 fangling 于 2016-11-19 10:56 编辑

请楼主普及一下知识,LXD是个什么东东,是和docker一样的容器吗,docker与kvm有什么不同?
Reply View the author
Feng Yu
deepin
2016-11-19 19:44
#6
https://bbs.deepin.org/post/132240
厉害了word哥,LXD目前只有Ubuntu支持吗?

因为是ubuntu的母公司主导开发,而且处于高速迭代期,所以目前只有ubuntu14.04以上才有官方安装包,一些高级功能比如在线迁移,容器嵌套等玩法必须在内核4.4以上版本才能支持
Reply View the author
Feng Yu
deepin
2016-11-19 19:45
#7
https://bbs.deepin.org/post/132240
请楼主普及一下知识,LXD是个什么东东,是和docker一样的容器吗,docker与kvm有什么不同? ...

还记得docker最早基于lxc么(尽管现在不再基于lxc了)。lxd就是lxc的升级版本,在lxc的基础上增加了很多高级功能和rest接口便于使用,同时完全兼容lxc的镜像。

至于docker和kvm的比对网上资料太多了,简单来说就是容器级虚拟化VS虚拟机
Reply View the author
Feng Yu
deepin
2016-11-19 19:54
#8
https://bbs.deepin.org/post/132240
好像很牛的样子,

也不是什么黑科技,如果对LXC有了解的话也就是那么回事。只是在容器里面跑了一个别的linux发行版而已,和真机共享内核
Reply View the author
132******13
deepin
2016-11-19 22:43
#9
https://bbs.deepin.org/post/132240
因为是ubuntu的母公司主导开发,而且处于高速迭代期,所以目前只有ubuntu14.04以上才有官方安装包,一些 ...

那等他迭完了再说
Reply View the author
Feng Yu
deepin
2016-11-19 22:58
#10
https://bbs.deepin.org/post/132240
那等他迭完了再说

一个健康的软件基本不存在迭代完了一说。
那种早就不维护的软件才会停止迭代,永远也没有更新了
Reply View the author
方老四
deepin
2016-11-19 23:28
#11
https://bbs.deepin.org/post/132240
还记得docker最早基于lxc么(尽管现在不再基于lxc了)。lxd就是lxc的升级版本,在lxc的基础上增加了很多高 ...

现在桌面云都是利用虚拟机,可以使用容器跑桌面吗?
Reply View the author
Feng Yu
deepin
2016-11-20 04:39
#12
https://bbs.deepin.org/post/132240
现在桌面云都是利用虚拟机,可以使用容器跑桌面吗?

可以,实际上是跑的vnc,以前有个docker镜像就可以运行桌面https://github.com/rogaha/docker-desktop
也可以参考这个: http://fabiorehm.com/blog/2014/0 ... i-apps-with-docker/

在lxc也可以用同样的方式,比如ssh -X/-Y方式,也有将本地的xserver的sock文件挂载到容器中运行的方式,参考: https://www.stgraber.org/2014/02/09/lxc-1-0-gui-in-containers/

LXD就是LXC升级版,方法也是一样的。
Reply View the author
132******13
deepin
2016-11-20 05:05
#13
https://bbs.deepin.org/post/132240
一个健康的软件基本不存在迭代完了一说。
那种早就不维护的软件才会停止迭代,永远也没有更新了 ...

啊哈哈,我是说等他稳定下来再去了解一下。Canonical造轮子是一绝,相比之下年轻的deepin轮子还没有他们造的全,而C家的轮子好不好用还得继续期待
Reply View the author
Feng Yu
deepin
2016-11-20 05:14
#14
https://bbs.deepin.org/post/132240
啊哈哈,我是说等他稳定下来再去了解一下。Canonical造轮子是一绝,相比之下年轻的deepin轮子还没有他们 ...

不过LXD官方文档介绍却说这并不是重复造轮子。

LXD isn't a rewrite of LXC, in fact it's building on top of LXC to provide a new,
better user experience. Under the hood, LXD uses LXC through liblxc and its Go binding
to create and manage the containers.

官方文档如是说。也就是说LXD其实就是LXC的简化版本,增强了LXC的体验,增加了REAT接口便于远程管理等等,底层还是LXC
Reply View the author
132******13
deepin
2016-11-20 06:13
#15
https://bbs.deepin.org/post/132240
不过LXD官方文档介绍却说这并不是重复造轮子。

LXD isn't a rewrite of LXC, in fact it's building on  ...

哦哦抱歉。你把这个东西用在生产环境了吗?效果怎么样,和你之前用的其他技术比起来有什么优势
Reply View the author
Feng Yu
deepin
2016-11-20 07:35
#16
https://bbs.deepin.org/post/132240
哦哦抱歉。你把这个东西用在生产环境了吗?效果怎么样,和你之前用的其他技术比起来有什么优势 ...

用在测试环境替换掉了KVM。写了一篇blog分享了下体验而已: https://my.oschina.net/abcfy2/blog/759213
Reply View the author