为减少容器的配置工作,为用户创建自己的容器之前,预先配置好了一个模板容器。其他用户的容器可以基于该模板进行创建。
在我们的配置中,有一个特殊点,就是容器中的/home目录,与~/SSD目录,是单独存储的。并且在LXC的配置测试中,发现如果在宿主机中进行其它mount操作,将导致LXC容器无法启动。所以,对以上涉及的几个目录,需要逐步修改config,并在容器内进行相应配置。
正常启动容器
首先取消容器内的所有挂载,然后正常启动容器。如果容器正常启动,则证明容器的内容没有基本错误。
修改容器的主机名
修改容器的rootfs/etc/hostname,修改继承的主机名。
同时修改容器的config文件中,lxc.utsname,改为与hostname同样的主机名。
重启容器,检查修改是否有效。
挂载home目录
停止容器,将rootfs/home/ 下的全部文件移到设定的挂载目录。
修改config配置文件,添加对应的lxc.mount.entry配置,例如
1 | lxc.mount.entry = /mnt/HDD/XXXX home none bind 0 0 |
并且,将/mnt/HDD/XXXX/下的所有目录添加读、写、执行权限。
启动容器,检查是否正常。
新建用户及用户目录
启动容器后,attach到容器内,以root身份创建用户
1 | useradd -m -s /bin/bash XXXX |
添加新用户XXXX,并创建其用户目录。
在/mnt/HDD/XXXX/中,给新创建的用户目录赋予7777权限。
登录到新创建的用户,创建一个用于挂载其他路径的目录,在我们的使用中,新的挂载点是SSD。
将其他目录挂载在新用户
关闭容器。
更改容器的config文件,添加新的mount配置
1 | lxc.mount.entry = /mnt/SSD/XXXX home/XXXX/SSD none bind 0 0 |
现在重新启动容器,检查挂载是否成功。
总结
经过以上几步,不仅将容器中的/home目录转移到其它的可靠位置,也在用户目录下新添加了一个其他的挂载点,在使用中具有更好的效果。