打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
zh/HowTos/LXC

如何:配置支持 LXC 的 CentOS 6

1. LXC 的介绍

LXC (Linux Container)不是真正的虚拟化技术,它更像是一个 chroot 的环境。

http://lxc.sourceforge.net 可以获得关于 LXC 的更多信息 。

2. 安装 libvirt 堆栈

yum install libvirt libvirt-client python-virtinst

3. 配置 LXC 容器

假设你想配置一个完整的容器,就像进行一个最小化的 CentOS 6 安装一样。

请确保你机器上的 libvirtd 已经启动(service libvirtd start)。

我们将初始化一个 CentOS 6 x86_64 容器,假设,

  • 根目录为 /var/lib/libvirt/lxc/centos-6-x86_64/
  • root 密码为will be MYROOTPASS
  • 机器架构与主机相同,示例中为 x86_64
  • 容器名称是 test

3.1. 在本机系统

mkdir /var/lib/libvirt/lxc/centos-6-x86_64/etc/yum.repos.d/ -p cat /etc/yum.repos.d/CentOS-Base.repo |sed s/'$releasever'/6/g > /var/lib/libvirt/lxc/centos-6-x86_64/etc/yum.repos.d/CentOS-Base.repoyum groupinstall core --installroot=/var/lib/libvirt/lxc/centos-6-x86_64/ --nogpgcheck -yyum install plymouth libselinux-python --installroot=/var/lib/libvirt/lxc/centos-6-x86_64/ --nogpgcheck -y

Selinux 注意:你需要创建一个规则以允许 virtd_lxc_t 使用 dbus:

module lxc 1.0;  require {        type hald_t;        type virtd_lxc_t;        class dbus send_msg;}#============= hald_t ==============allow hald_t virtd_lxc_t:dbus send_msg;

http://wiki.centos.org/zh/HowTos/SELinux 页提供了优秀的指引文档,来指导我们完成以上步骤。

请留意你不能在停用 SELinux 的情况下运用 LXC,你可尝试把政策改为 permissive(见 https://bugzilla.redhat.com/show_bug.cgi?id=995897)

3.2. 在 chroot 文件系统中

以下均在 chroot 环境中操作:

chroot /var/lib/libvirt/lxc/centos-6-x86_64/  echo MYROOTPASS |passwd root --stdin#Fix root login on consoleecho "pts/0" >>/etc/securettysed -i s/"session    required     pam_selinux.so close"/"#session    required     pam_selinux.so close"/g /etc/pam.d/loginsed -i s/"session    required     pam_selinux.so open"/"#session    required     pam_selinux.so open"/g /etc/pam.d/loginsed -i s/"session    required     pam_loginuid.so"/"#session    required     pam_loginuid.so"/g /etc/pam.d/login#Configuring basic networkingcat > /etc/sysconfig/network << EOFNETWORKING=yesHOSTNAME=lxc1.test.centos.orgEOFcat > /etc/sysconfig/network-scripts/ifcfg-eth0 << EOFDEVICE=eth0BOOTPROTO=dhcpONBOOT=yesEOF#Enabling sshdchkconfig sshd on# Fixing root login for sshdsed -i s/"session    required     pam_selinux.so close"/"#session    required     pam_selinux.so close"/g /etc/pam.d/sshdsed -i s/"session    required     pam_loginuid.so"/"#session    required     pam_loginuid.so"/g /etc/pam.d/sshdsed -i s/"session    required     pam_selinux.so open env_params"/"#session    required     pam_selinux.so open env_params"/g /etc/pam.d/sshd# Leaving the chroot'ed filesystemexit

3.3. 返回本机

# 现在从上面的文件系统创建 LXC 容器。

virt-install --connect lxc:/// --name test --ram 512 --vcpu 1 --filesystem /var/lib/libvirt/lxc/centos-6-x86_64/,/ --noautoconsole

你可以如此访问该 LXC 容器:

virsh console test 

又或者

ssh -l root CONTAINER_IP 

要取得 LXC 容器的 IP 地址,请在 dhcp 租约 /var/lib/libvirt/dnsmasq/default.leases 内查阅它的 MAC 地址(收录于 /etc/libvirt/lxc/test.xml

3.4. 有关在 KVM 虚拟机器内运行 LXC 与缺省网络

当你在 KVM 虚拟机器内运行 LXC(两者皆采用 libvirt),缺省的 192.168.122.0/24 网络将会在 LXC 容器引导时产生冲突,你须要更改客端虚拟机器的 libvirtd(执行容器的那个)的 IP 范围来矫正问题。

service libvirtd stopsed -i 's/"192\.168\.122\./"192.168.120./' /etc/libvirt/qemu/networks/default.xmlservice libvirtd start

Translation of revision 7

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
如何在CentOS 7再跑一个轻量的ubuntu
在 CentOS 6.4(64位) 安装 docker.io
Docker参数命令大全详解
LXC (Linux Container) Operating system
Docker究竟是什么,为什么这么流行,它的优点和缺陷有哪些?
Docker学习笔记:Docker 基础用法和命令帮助
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服