LXC (linux containers)
LXC (Linux Containers) es una tecnología de virtualización en el nivel de sistema operativo (SO) para Linux. LXC permite que un servidor físico ejecute múltiples instancias de sistemas operativos aislados, conocidos como Servidores Privados Virtuales (SPV o VPS en inglés) o Entornos Virtuales (EV). LXC no provee de una máquina virtual, más bien provee un entorno virtual que tiene su propio espacio de procesos y redes.
Es similar a otras tecnologías de virtualización en el nivel de SO como OpenVZ y Linux-VServer, asimismo se asemeja a aquellas de otros sistemas operativos como FreeBSD jail y Solaris Containers.
LXC se basa en la funcionalidad cgroups del Linux que está disponible desde la versión 2.6.29, desarrollada como parte de LXC. También se basa en otras funcionalidades de aislamiento de espacio de nombres, que fueron desarrolladas e integradas dentro de la línea principal del núcleo de Linux.
Instalación
Debian
apt-get install lxc bridge-utils libvirt-bin debootstrap cgroup-bin libcgroup1
Redhat
yum install lxc bridge-utils febootstrap debootstrap lxc-template
Creamos el directorio para el contenedor
root@docker:~# mkdir /lxcroot@docker:~# cd /lxcroot@docker:~# mkdir contenedor
Habilitamos cgroup.
root@docker:~# mkdir /cgrouproot@docker:~# echo «none /cgroup cgroup defaults 0 0« >>/etc/fstabroot@docker:~# mount /cgrouproot@docker:~# mkdir /cgroup/contenedor
Configuramos la interfaz de red:
[root@docker /lxc]# vi /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0TYPE=EthernetHWADDR=aa:bb:cc:dd:ee:ff:11:22ONBOOT=yesBRIDGE=br0USERCTL=noIPV6INIT=no[root@docker /lxc]# vi /etc/sysconfig/network-scripts/ifcfg-br0HOSTNANE=host1DEVICE=br0ONBOOT=yesBOOTPROTO=staticDELAY=0TYPE=BridgeIPADDR=192.168.1.88NETWORK=192.168.1.0NETMASK=255.255.255.0GATEWAY=192.168.1.1MTU=1500DNS1=192.168.1.0IPV6INIT=noUSERCTL=no
[root@docker /lxc]# vi /etc/sysconfig/network-scripts/ifup-postif [ $DEVNAME = «br0« ]then/usr/sbin/brctl setfd br0 0fi
root@docker:~# vi /etc/network/interfacesauto loiface lo inet loopbackauto br0iface br0 inet staticaddress 192.168.0.100netmask 255.255.255.0gateway 192.168.0.1bridge_ports eth0bridge_stp offbridge_maxwait 5post-up /usr/sbin/brctl setfd br0 0
Creamos el contenedor.
root@docker:/lxc/contenedor# lxc-create -n redorbita -t debian –lxcpath=/lxc/contenedor
Configuramos la interfaz de red
Añadimos la siguiente configuración (Modificando el nombre y la dirección IP):
root@docker:~# cat /lxc/contenedor/redorbita/config
# Template used to create this container: /usr/share/lxc/templates/lxc-debian
# Parameters passed to the template:
# For additional config options, please look at lxc.container.conf(5)
lxc.network.type = empty
lxc.rootfs = /lxc/contenedor/redorbita/rootfs# Common configuration
lxc.include = /usr/share/lxc/config/debian.common.conf# Container specific configuration
lxc.mount = /lxc/contenedor/redorbita/fstab
lxc.utsname = redorbita
lxc.arch = amd64
lxc.autodev = 1
lxc.kmsg = 0# Network configuration
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0
#lxc.network.hwaddr = 00:16:3e:64:0b:6e# Assegnazione IP Address
lxc.network.ipv4 = 192.168.1.80/24
lxc.network.ipv4.gateway = 192.168.1.1# Autostart
lxc.start.auto = 1
lxc.start.delay = 5
lxc.start.order = 100
Iniciamos el servidor
root@docker:/lxc/contenedor# lxc-start -f /lxc/contenedor/redorbita/config -n redorbita -P /lxc/contenedor/ -d
Accedemos por consola
root@docker:~# lxc-console -n redorbita -P /lxc/contenedor/
Connected to tty 1
Type <Ctrl+a q> to exit the console, <Ctrl+a Ctrl+a> to enter Ctrl+a itselfDebian GNU/Linux 8 redorbita tty1
redorbita login: root
Password:
root@docker:/lxc/contenedor# lxc-ls -f -P /lxc/contenedor/
NAME STATE IPV4 IPV6 AUTOSTART
——————————————————————
redorbita RUNNING 192.168.1.80, – YES
redorbitaweb RUNNING 192.168.1.81 – YES
Un saludo, rokitoh!
3 comentarios en “Instalar servidor LXC en GNU/Linux”