文章目录
- 1 LXD简介
- 1.1 容器技术
- 1.2 LXC与Docker
- 2 镜像(image)
- 2.1 镜像
- 2.2 指令
- 3 容器(container)
- 3.1 容器与快照
- 3.2 常用指令
- 4 存储(storage)
- (可选)文件管理ZFS
- 5 配置组
- 端口
- GPU与CUDA(留坑)
- 参考与工具
1 LXD简介
1.1 容器技术
使用 Linux 容器而不是硬件虚拟化向用户提供一种接近虚拟机的使用体验。
1.2 LXC与Docker
LXD是LXC的升级,更加易用以及方便主机间的通信。
LXD更注重系统容器,即运行一个完整的Linux操作系统,而Docker 侧重与在容器中运用普通应用,关注于短期的、无状态的、最小化的容器。
这两种模型并不是完全互斥的。完全可以使用 LXD 为来提供一个完整的 Linux 系统,然后可以在 LXD 内安装 Docker 来运行想要的软件。
- 安装lxd
sudo snap install lxd
2 镜像(image)
2.1 镜像
LXD 是基于镜像实现的,所有的 LXD 容器都是来自于镜像。
容器镜像可以是一些纯净的 Linux 发行版的镜像,也可以由用户的容器生成并发布。
LXD 安装时已经配置好了三个远程镜像服务器:
- “ubuntu”:提供稳定版的 Ubuntu 镜像
- “ubuntu-daily”:提供 Ubuntu 的每日构建镜像
- “images”: 社区维护的镜像服务器,提供一系列的其它 Linux 发布版,使用的是上游 LXC 的模板
2.2 指令
- 显示已有镜像
lxc image list
- 镜像加载成容器
lxc launch (镜像名) (要创建的容器名)
- 使用已有容器/快照生成镜像
lxc publish (容器名/快照名) --alias (镜像名称)
3 容器(container)
3.1 容器与快照
容器可以视为一个完整的linux系统。
容器快照和容器是一回事,只不过快照是不可修改的,只能被重命名,销毁或者用来恢复系统,但是无论如何都不能被修改。
3.2 常用指令
- 展示全部容器
lxc list
- 创建容器
lxc launch (要使用的镜像) (容器名) -s (存储池名)
- 展示容器信息
lxc info (容器名)
lxc info zuo
- 让容器执行指令
lxc exec (容器名) -- (要执行的指令) /
lxc exec zuo -- df -h /
- 启动/重启/停止/删除容器
lxc start/restart/stop/delete (容器名)
lxc delete zuo
4 存储(storage)
- 创建默认存储池
lxd init
- 查看已有存储池
lxc storage list
lxc storage show (存储池名)
lxc storage edit (name)
- 创建更多的存储池
lxc storage create my-btrfs btrfs
lxc storage create pool zfs size=128GB
(可选)文件管理ZFS
LXD 支持使用 ZFS、btrfs、LVM 或只是普通目录来存储图像、实例和自定义卷。
在可能的情况下,LXD 会尝试使用每个系统的高级功能来优化操作。
这里推荐使用ZFS
- 查看存储情况
zfs list
- LXD不能让你直接增长一个循环支持的ZFS池,但你可以用以下方式:
sudo truncate -s +5G /var/lib/lxd/disks/<POOL>.img
sudo zpool set autoexpand=on lxd
sudo zpool online -e lxd /var/lib/lxd/disks/<POOL>.img
sudo zpool set autoexpand=off lxd
(NOTE: For users of the snap, use /var/snap/lxd/common/lxd/ instead of /var/lib/lxd/
)
5 配置组
- 查看所有配置
lxc profile show default
有些可以直接编辑器改的配置,不用看下面
端口
- 创建映射方便外部访问
lxc config device add (容器名) proxy0 proxy listen=tcp:(服务器IP):(给定端口) connect=tcp:(本地IP):22 bind=host
GPU与CUDA(留坑)
- 查看GPU状态
nvidia-smi