Això pot sonar una miqueta més tècnic del que se sol publicar en aquest blog. Tot i així, és una informació que personalment trobe valuosa i crec que cal compartir. Podeu trobar l’article original en anglès aquí.
Què és?
LXC és una tecnologia que ens permet instal·lar un contenidor Linux dintre del nostre sistema Linux. És a dir, és com instal·lar una distribució a dins del nostre Linux, de manera que podem accedir a ella per ssh, com si fora una màquina en remot. Això és útil, per exemple, per al desenvolupament d’aplicacions web.
Creació d’un contenidor LXC pas a pas
Instal·lació del paquet lxc
Primer de tot, cal instal·lar els paquets següents:
sudo apt-get install lxc lxctl lxc-templates
Una vegada instal·lat, podrem executar l’ordre lxc-checkconfig, amb la qual confirmem que tot està bé:
sudo lxc-checkconfig
Això haurà de donar-nos una eixida més o menys com aquesta:
sudo lxc-checkconfig
Kernel configuration not found at /proc/config.gz; searching...
Kernel configuration found at /boot/config-4.2.0-27-generic
--- Namespaces ---
Namespaces: enabled
Utsname namespace: enabled
Ipc namespace: enabled
Pid namespace: enabled
User namespace: enabled
Network namespace: enabled
Multiple /dev/pts instances: enabled
--- Control groups ---
Cgroup: enabled
Cgroup clone_children flag: enabled
Cgroup device: enabled
Cgroup sched: enabled
Cgroup cpu account: enabled
Cgroup memory controller: enabled
Cgroup cpuset: enabled
--- Misc ---
Veth pair device: enabled
Macvlan: enabled
Vlan: enabled
Bridges: enabled
Advanced netfilter: enabled
CONFIG_NF_NAT_IPV4: enabled
CONFIG_NF_NAT_IPV6: enabled
CONFIG_IP_NF_TARGET_MASQUERADE: enabled
CONFIG_IP6_NF_TARGET_MASQUERADE: enabled
CONFIG_NETFILTER_XT_TARGET_CHECKSUM: enabled
--- Checkpoint/Restore ---
checkpoint restore: enabled
CONFIG_FHANDLE: enabled
CONFIG_EVENTFD: enabled
CONFIG_EPOLL: enabled
CONFIG_UNIX_DIAG: enabled
CONFIG_INET_DIAG: enabled
CONFIG_PACKET_DIAG: enabled
CONFIG_NETLINK_DIAG: enabled
File capabilities: enabled
Note : Before booting a new kernel, you can check its configuration
usage : CONFIG=/path/to/config /usr/bin/lxc-checkconfig
Ara ja podem crear un contenidor lxc.
Creació del contenidor
Podem instal·lar qualsevol sistema operatiu que vulguem. Per veure’n els que hi ha disponibles, executem:
sudo ls /usr/share/lxc/templates/
I el resultat:
sudo ls /usr/share/lxc/templates/
lxc-alpine lxc-archlinux lxc-centos lxc-debian lxc-fedora lxc-openmandriva lxc-oracle lxc-sshd lxc-ubuntu-cloud
lxc-altlinux lxc-busybox lxc-cirros lxc-download lxc-gentoo lxc-opensuse lxc-plamo lxc-ubuntu
La sintaxi general per crear un contenidor ha d’ésser:
sudo lxc-create -n container-name -t template
Si, per exemple, volem crear un contenidor amb Ubuntu, faríem:
sudo lxc-create -n ubuntu01 -t ubuntu
Per defecte, l’usuari i la contrasenya d’accés al contenidor serà ubuntu:ubuntu
Iniciant i treballant amb contenidors
Per iniciar un contenidor, podem executar:
sudo lxc-start -n ubuntu01 -d
I per aturar-lo:
sudo lxc-stop -n ubuntu01
Per accedir a ell mitjançant ssh, tenim dues opcions. La primera, seria seguir fent servir lxc:
sudo lxc-console -n ubuntu01
Si volem conéixer l’adreça ip d’un contenidor, podem accedir per:
sudo lxc-ls --fancy ubuntu01
Això ens donarà una cosa com:
NAME STATE IPV4 IPV6 GROUPS AUTOSTART
-----------------------------------------------------
ubuntu01 RUNNING 10.0.3.20 - - NO
És a dir, l’adreça IP del nostre contenidor, que s’està executant, és 10.0.3.20. Amb això, ja podem accedir per ssh:
ssh ubuntu@10.0.3.20
Bé, per ara, això és el que més m’interessa compartir. Si algú tinguera alguna qüestió, doncs ja faria més articles al respecte. Sobre l’LXC hi ha molt a dir!
Comentaris recents