LXD 安装与使用
参考
- https://linuxcontainers.org/lxd/
- https://wiki.gentoo.org/wiki/LXD
- https://wiki.gentoo.org/wiki/LXC
- https://wiki.archlinux.org/index.php/LXD
- https://wiki.archlinux.org/index.php/Linux_Containers
安装
# Gentoo
emerge -v lxd
# Arch
pacman -S lxd
Debian 系和 Redhat 系需要 snap 来安装。
snap install lxd
配置
LXD 需要 subuid/subgid 的支持,参考 Container Idmap。
LXD 默认的 subuid/subgid 如下:
lxd:1000000:65536
root:1000000:65536
为当前用户赋予使用权利:
usermod -aG lxd `whoami`
开启服务:
systemctl start lxd
使用之前需要先初始化:
lxd init
使用
源
添加新源:
lxc remote add tuna-images https://mirrors.tuna.tsinghua.edu.cn/lxc-images/ --protocol=simplestreams --public
镜像
搜索源里的镜像:
lxc image list -c Ldftsu tuna-images: a=amd64 archlinux
从 LXD 4 起,LXD 开始支持 qemu,镜像也分虚拟机和容器镜像:
# 只查容器
lxc image list tuna-images: -c dsL a=amd64 type=squashfs | less
# 只查虚拟机
lxc image list tuna-images: -c dsL a=amd64 type=disk-kvm.img | less
容器
从源里拉去镜像生成容器:
lxc lanuch tuna-images:debian/11 my-debian-11
容器的操作:
lxc stop my-debian-11
lxc start my-debian-11
lxc exec my-debian-11 -- bash
容器配置
配置可以使用 lxc edit $container_name
,然后进行文本编辑修改,也可以命令行执行:
lxc config set ${container_name} limits.cpus 1
配置里面比较常见是添加和删除设备或文件夹,而且 LXD 相对 Docker 比较好的地方是能动态配置资源,如挂载和卸载共享文件夹 :
lxc config device add ${container_name} ${device_name} ${device_type} path=${container_path} source=${host_path}