使用LXD容器隔离开发环境

我将讨论在工作站上组织本地隔离开发环境的方法。该方法是在以下因素的影响下开发的:


  • 不同的语言需要不同的IDE和工具链;
  • 不同的项目可能使用不同版本的工具链和库。

该方法是在LXD内部开发在笔记本电脑或工作站上本地运行的容器,并将图形输出重定向到主机。


Ubuntu 20.04的示例上进行配置


在文章末尾对选项和原因进行了思考。


1.安装LXD


Ubuntu 20.04上, LXD不再可以通过deb软件包安装,只能通过snap来安装:


$ snap install lxd

安装后,您需要执行初始化:


$ lxd init

我更改的唯一参数是storage bakend使用dir最简单的参数。由于我不使用快照和副本,因此文档中的警告并不会吓我一跳:


同样,目录后端将被视为最后的选择。
它确实支持所有主要的LXD功能,但是由于它无法执行
即时复制或快照,因此非常缓慢且效率低下,因此每次都需要复制实例存储的全部。

2. LXD配置文件设置


LXD — . default :


  • $ lxc profile device add default X0 disk source=/tmp/.X11-unix/X0 path=/tmp/.X11-unix/X0 — X11 ;
  • $ lxc profile set default environment.DISPLAY :0DISPLAY ;
  • $ lxc profile set default raw.idmap "both 1000 1000".

3.


images:ubuntu/20.04:


$ lxc launch images:ubuntu/20.04 dev1

https://images.linuxcontainers.org, . images: . Ubuntu : $ lxc launch ubuntu/20.04 dev1.


:


$ lxc exec dev1 -- bash

Firefox VS Code ( ):


$ apt update
$ apt install curl gpg firefox

$ curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
$ install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/
$ echo "deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list

$ apt update
$ apt install code


poweroff

! GPU , . :


  • $ lxc config device add dev1 mygpu gpu;
  • — , .

4.


, , :


lxc start dev1

VS Code ubuntu:


lxc exec dev1 -- sudo --login --user ubuntu code

Firefox:


lxc exec dev1 -- sudo --login --user ubuntu firefox

, — ssh.


, — .


5.


, , , . , , , . OpenSSL , .


:


  • (KVM, VirtualBox ..) — , , Windows ( , Linux) ;
  • (Cloud9 , Eclipse Che ..) — , , — ;
  • Docker — , , .

. : , (Puppet, Ansible ..), Docker. LXD , — $ lxc launch images:ubuntu/16.04 dev16.


, — , . .




All Articles