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 libcgroup1Redhat
yum install lxc bridge-utils febootstrap debootstrap lxc-templateCreamos el directorio para el contenedor
root@docker:~# mkdir /lxc
root@docker:~# cd /lxc
root@docker:~# mkdir contenedorHabilitamos cgroup.
root@docker:~# mkdir /cgroup
root@docker:~# echo «none /cgroup cgroup defaults 0 0« >>/etc/fstab
root@docker:~# mount /cgroup
root@docker:~# mkdir /cgroup/contenedorConfiguramos la interfaz de red:
[root@docker /lxc]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
HWADDR=aa:bb:cc:dd:ee:ff:11:22
ONBOOT=yes
BRIDGE=br0
USERCTL=no
IPV6INIT=no
[root@docker /lxc]# vi /etc/sysconfig/network-scripts/ifcfg-br0
HOSTNANE=host1
DEVICE=br0
ONBOOT=yes
BOOTPROTO=static
DELAY=0
TYPE=Bridge
IPADDR=192.168.1.88
NETWORK=192.168.1.0
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
MTU=1500
DNS1=192.168.1.0
IPV6INIT=no
USERCTL=no[root@docker /lxc]# vi /etc/sysconfig/network-scripts/ifup-post
if [ $DEVNAME = «br0« ]
then
/usr/sbin/brctl setfd br0 0
firoot@docker:~# vi /etc/network/interfaces
auto lo
iface lo inet loopback
auto br0
iface br0 inet static
address 192.168.0.100
netmask 255.255.255.0
gateway 192.168.0.1
bridge_ports eth0
bridge_stp off
bridge_maxwait 5
post-up /usr/sbin/brctl setfd br0 0Creamos el contenedor.
root@docker:/lxc/contenedor# lxc-create -n redorbita -t debian –lxcpath=/lxc/contenedorConfiguramos 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 = 100Iniciamos el servidor
root@docker:/lxc/contenedor# lxc-start -f /lxc/contenedor/redorbita/config -n redorbita -P /lxc/contenedor/ -dAccedemos 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 itself
Debian 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 – YESUn saludo, rokitoh!
Comentarios