我将讨论在工作站上组织本地隔离开发环境的方法。该方法是在以下因素的影响下开发的:
- 不同的语言需要不同的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 :0
— DISPLAY
;$ 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
.
, — , . .