下载容器镜像
配置清华镜像源
sudo lxc remote add tuna-images https://mirrors.tuna.tsinghua.edu.cn/lxc-images/ --protocol=simplestreams --public
使用如下命令查看清华镜像的所有系统:
sudo lxc image list tuna-images:ubuntu
通过输出的列表选择容器系统并记录第二列的 FINGERPRINT,如 ubuntu/18.04 的FINGERPRINT为 0023c4e9dc6e
创建新容器:
sudo lxc launch tuna-images:c00625996e08 container
该命令创建一个纯净无桌面版本的Ubuntu 16.04 其中container代表容器名称
进入容器
sudo lxc exec container bash
修改root和ubuntu账号密码
passwd root
passwd ubuntu
安装openssh开启ssh登录
apt install openssh-server
检查ssh服务是否开启
ps aux|grep sshd
有/usr/sbin/sshd -D表示已经开启,Ctrl+D 退出容器bash或输入exit退出容器bash
配置网络代理proxy
sudo lxc config device add <container> proxy0 proxy listen=tcp:0.0.0.0:5000 connect=tcp:127.0.0.1:22 bind=host
其中5000为宿主机端口,22为容器端口(这里特指ssh服务)
观察端口是否被监听
sudo netstat -lnp | grep 5000
如果需要删除端口监听
sudo lxc config device remove container proxy0
至此,可以通过ip:5000端口访问容器ssh
为容器添加所有的GPU
sudo lxc config device add <container> gpu gpu
添加指定的GPU
sudo lxc config device add <container> gpu0 gpu id=1
安装NVIDIA驱动,需要注意的是宿主机NVIDIA驱动型号和容器驱动型号需要完全相同
例如,用run方式安装驱动
sudo sh ./NVIDIA-Linux-x86_64-xxx.xx.run --no-kernel-module
Would you like to run the nvidia-xconfig utility to automatically update your X configuration file so that the NVIDIA X driver will be used when you restart X? Any pre-existing X configuration file will be backed up.
这一步选择Yes
之后重启容器后便可以使用nvidia-smi观察到gpu
至此,已经完成了nvidia显卡确定的容器配置
接下来介绍带桌面版本的容器配置,在之前的基础上按照以下步骤处理:
注:向容器发送一个文件
sudo lxc file push ~/Anaconda3-2021.05-Linux-x86_64.sh ubuntu16screen//home/ubuntu/
~/Anaconda3-2021.05-Linux-x86_64.sh为宿主机中的文件名
ubuntu16screen为容器名称
/home/ubuntu/为路径,其与容器名称直接需要添加一个/
注:将容器保存为本地image
sudo lxc snapshot ubuntu16noscreen 2021-5-27
sudo lxc publish ubuntu16noscreen/2021-5-27 --alias ubuntu16noscreen
查看本地image
sudo lxc image list
利用本地image生成新容器
sudo lxc launch ubuntu16noscreen <container>