LXC系列教程之二使用LinuxContainer虚拟电脑.docx
《LXC系列教程之二使用LinuxContainer虚拟电脑.docx》由会员分享,可在线阅读,更多相关《LXC系列教程之二使用LinuxContainer虚拟电脑.docx(9页珍藏版)》请在冰豆网上搜索。
LXC系列教程之二使用LinuxContainer虚拟电脑
第二章:
使用LinuxContainer虚拟计算机
2.1Console联机模式
一般若直接使用如〝sudolxc-start-nmyUS1204〞指令的方式来启动LXC虚拟计算机,则会在终端机上直接进入LXC虚拟计算机系统内,但这样就会直接占用目前的终端机窗口,在某些情况下还蛮不方便的,所以可以改用以下的指令来启动LXC虚拟计算机,以释放终端机的操控权:
$sudolxc-start-nmyUS1204-d
而当按下Enter键之后,会发现终端机窗口并没有任何反应:
终端机没有响应的原因,在于LXC虚拟计算机已经被放到背景当中执行,若要进入(连结)在背景执行的LXC虚拟计算机,则需要利用〝Console〞的联机模式,才能链接到在背景执行的LXC虚拟计算机,而LXC的原生命令也有提供〝Console〞模式的联机指令,因此,要进入在背景执行的LXC虚拟计算机,则要用以下的指令来联机:
$sudolxc-console-nmyUS1204
这样就可以顺利进入背景执行的LXC虚拟计算机内了。
而一般在使用Linux系统的时候,有许多经常执行的动作、指令,都会需要一些参数的配合,又或者会需要输入较长的指令,例如,一个完整的关机指令为〝sudoshutdown-hnow〞,这对熟悉Linux操作的人来说,在指令的操作上或许没啥大不了,但就一般使用者来说,记住着些指令与参数,可是会要了他们的老命呢,这时就可以善用〝alias〞的指令,来简化许多指令参数的组合。
首先,先利用以下指令来开启家目录下的〝.bashrc〞档案:
$sudovim.bashrc
开启之后,直接移动到档案的最后面,并在最后面加入以下两行指令:
aliasping=’ping-c4’
aliasbye=’sudoshutdown-hnow’
输入完成,就可以存盘后退出,而为了让alias指令可以使用,则需要先注销系统之后,再重新登入就可以套用,而至于注销LXC虚拟计算机的方式,只需要直接输入〝exit〞的指令,就可以注销系统,并重新回到登入画面:
重新登入系统之后,就可以测试刚刚alias指令,是否可以正常使用了!
2.2LXC虚拟计算机系统中文化
就所安装的LXC虚拟计算机来说(Ubuntu系统),默认安装完成并没有桌面套件,因此,在操作上都是透过终端机来进行联机与操作,所以整个操控都是英文接口,不支持中文显示,因此,在这边我们要替LXC虚拟计算机来进行中文化。
而所谓的中文化,其实只是安装中文语系的套件包,其指令如下:
$sudoapt-getinstalllanguage-pack-zh-hant
安装完成,就可以清楚看到已经将中文语系安装到系统内了:
中文语系安装完成之后,还需要在/etc/profile档案内进行一些设定,指定系统以中文语系为主,利用以下指令开启/etc/profile档案:
$sudovim/etc/profile
档案开启之后,直接移动到档案的最后面,并加入以下三行环境变量宣告:
exportLANG=zh_TW.UTF-8exportLANGUAGE=zh_TW.UTF-8exportLC_ALL=zh_TW.UTF-8
存盘退出之后,一样,要重新登入系统之后,设定值才会生效。
重新登入之后,来测试一下中文化的状况,利用nano这套编辑器开启一个新档案,不过,LXC虚拟计算机的系统内默认并没有这套编辑器,所以可以利用〝sudoapt-getinstallnano〞的指令来安装,开启新档案之后,在新档案内输入中文字,如下图:
这样中文化的设定就完成了,且不只可以输入中文,连编辑器的操控接口也都已经中文化了。
2.3安装虚拟计算机常用命令(wget,tree,..)
LXC虚拟计算机在执行与操作上看似与一般实体主机上的系统没有差异,但事实上,许多常用的指令(套件),在最初安装LXC虚拟计算机的时候,并没有一并被安装进来,例如,
〝wget〞这一个档案下载的命令,预设就没有被安装在LXC虚拟计算机之内,但若一般实体计算机内的系统,就会有包含此一套件,所以,若再使用LXC虚拟计算机时候,若发现到某些常用的命令并没有包还含在LXC虚拟计算机之内,就直接利用在线安装的方式,将缺失的命令套件给安装进来,如下:
$sudoapt-getinstallwgettree
2.4多部虚拟计算机管理(终端机分页)
每次要启动或进入LXC虚拟计算机的时候,都需要在终端机内输入一串指令,难道没有比较快速简易的方式吗?
其实是有的,不过,这还需要搭配一个客制化的BashScript,才能简化启动与进入的程序。
首先,利用任一编辑器,开启硬建立一个名称为〝srvlxc〞的档案,当然,名称可以自定,而档案开启之后,在档案内输入以下内容:
#!
/bin/bash
["$#"!
="1"]&&echo"srv.shlxc-system"&&exit1p=$(psaux)
echo$p|grep"lxc-start.n$1.d"&>/dev/null
if["$?
"=="0"];then
echo-n"按a登入,按c關機:
"readans
if["$ans"=="a"];then
sudolxc-console-n$1elif["$ans"=="c"];then
sudolxc-stop-n$1
fielse
echo-n"$1啟動中...."
sudolxc-start-n$1-d&>/dev/null
p=$(psaux)
echo$p|grep"lxc-start.n$1.d"&>/dev/null["$?
"!
="0"]&&echo"失敗"&&exit1
sleep6echo"成功"
sudolxc-console-n$1
fi
输入完成之后,就可以存盘退出,接着,利用以下命令,赋予档案有可执行的权限:
$chmod+xsrvlxc
接着,点选终端机上的〈档案〉→〈新增设定组合〉,此时系统会跳出「新增设定组合」的设定窗口,在「设定组合名称」的字段上,填入此LXC虚拟计算机的名称,如「myUS1204」:
点选「建立」之后,就会跳出〝正在编辑设定组合窗口「myUS1204」〞的设定窗口,将页面切换到「标题与指令」的分页,在此分页内,勾选「启动时执行自定义的指令而不是执行shell」,勾选之后,原本灰阶的「自定义指令」字段,就可以输入内容,并输入以下内容:
/home/student/srvlxcmyUS1204
输入完成之后,就可以直接按下「关闭」,来关闭设定窗口。
接着,回到终端机窗口,点选〈档案〉→〈开启分页〉,这时就可以看到刚刚设定名称为
「myUS1204」的选项:
接着点选「myUS1204」的选项,就会开启新的终端机分页,而这个分页,就是连结到名称为「myUS1204」的LXC虚拟计算机,不过由于启动LXC虚拟计算机需要有管理者的权限,所以会看到要输入密码的提示讯息,如下图:
输入用户密码之后,就可以进入LXC虚拟计算机的登入画面:
然而,能够里用此方式快速登入LXC虚拟计算机,全都是拜「srvlxc」这只BashScript程序的功劳,而至于这只程序的内容,在这边就不详述,有兴趣的人可以自行研究程序的内容。
不过,虽然可以快速进入LXC虚拟计算机的登入画面,但是每此利用这个方式,都还需要输入用户的密码,实在是有点不方便,而会有这样的原因,是因为启动时,有使用到〝sudo〞指令的缘故,若实在是不想每次都输入密码,则需要动点手脚!
若要使用〝sudo〞指令而不要再输入密码,最直接的办法,就是修改〝/etc/sudoers〞的檔案,不过,这边要特别强调一下,这是有风险的步骤,必须确认修改的内容没有任何错误之后,才能存档退出,不然,一旦有错,之后可是无法使用〝sudo〞的指令。
而为了确保可能的风险,所以在进行修改〝/etc/sudoers〞的档案之前,先利用以下指令来设定超级管理员,也就是〝root〞的密码,因为在Ubuntu的系统中,root默认是没有密码的,而为了确保若真的因为〝/etc/sudoers〞的档案修改错误,导致无法使用sudo的指令来执行管理员的权限,所以还是替root账号设定密码,以策安全;在终端机输入以下指令来设定root密码:
$sudopasswdroot
密码设定完成,会看到如下的讯息:
root密码设定完成之后,接着利用任一编辑器开启/etc/sudoers〞的档案(这边使用vim),档案开启之后,找到〝%sudoALL=(ALL:
ALL)ALL〞这一行,将此行最前面加上批注符号
(#)之后,直接在其下面新增〝%sudoALL=(ALL:
ALL)NOPASSWD:
ALL〞,如下图:
不过,在存盘的时候,会遇到如下图内的警示讯息:
这只是在警告编辑者,此档案有特殊权限,只需要依照警示提示修改存盘方式(指令)即可!
之后再次利用终端机内的分页功能,就不会在提示要输入用户密码了:
Linux核心虚拟技术–容器篇2-
10
而「srvlxc」不只有快速进入LXC虚拟计算机的功能,当LXC虚拟计算机在启动时,关闭此虚拟计算机的终端机分页后,若再次使用终端机分页要进入此虚拟计算机时,会有以下的提示讯息:
这时,使用者可以选择输入〝a〞已进入LXC虚拟计算机,或者是输入〝c〞来关闭LXC虚拟计算机,这边选择输入〝a〞来进入开启状态的LXC虚拟计算机,这时会看到系统显示如下的提示讯息:
这边可以不需要理会此讯息,再按一次Enter键之后,就可以进入系统的登入画面了:
以上,就是LXC的基本操作说明,希望能快速带领大家进入LXC的领域!