02.-Creación y gestión de contenedores
Al crear un contenedor se bajará el sistema de archivos que formará parte de él. La primera vez que bajamos con debootstrap
una versión de un sistema operativo se descargará un sistema de archivo mínimo del sistema (que llamamos plantilla) que servirá para crear todos los contenedores que creemos de la misma versión del sistema.
La creación de un contenedor con la última versión de debian, se realiza con la instrucción (ejecutada como root
):
$ lxc-create -n contenedor1 -t debian -- -r bullseye
-n
: Nombre del contenedor.-t
: Nombre de la plantilla.-r
: Es una opción de la plantilla. Es el nombre de la versión del sistema operativo. Para ver más opciones de una plantilla ejecutamos:lxc-create -t debian -h
.
Podemos comprobar que se ha creado un contenedor, ejecutando:
$ lxc-ls
contenedor1
La plantilla que hemos descargado se guarda en /var/cache/lxc/debian/rootfs-bullseye-amd64/
. Esta copia del sistema de archivo se utilizará cuando creemos otro contenedor con el mismo sistema operativo. El sistema de archivo del contenedor1
se guarda en /var/lib/lxc/contenedor1/rootfs/
.
Ahora podemos iniciar la ejecución del contenedor, comprobar que está funcionando y acceder a él:
$ lxc-start contenedor1
$ lxc-ls -f
NAME STATE AUTOSTART GROUPS IPV4 IPV6 UNPRIVILEGED
contenedor1 RUNNING 0 - 10.0.3.180 - false
$ lxc-attach contenedor1
root@contenedor1:~#
Iniciamos el contenedor con lxc-start
, comprobamos los contenedores que tenemos creados con lxc-ls
con la opción -f
nos da más información (vemos que está ejecutándose, que no se ejecuta al inicio, que ha tomado una dirección ip y que es privilegiado). Por último nos hemos conectado al contenedor con lxc-attach
.
Podemos parar el contenedor con lxc-stop
y eliminar el contenedor con lxc-destroy
.
Para visualizar todas las plantillas que podemos descargar, ejecutamos:
$ ls /usr/share/lxc/templates/
lxc-alpine lxc-archlinux lxc-centos lxc-debian lxc-fedora lxc-gentoo lxc-oci lxc-opensuse lxc-plamo lxc-sabayon lxc-sparclinux lxc-ubuntu lxc-voidlinux
lxc-altlinux lxc-busybox lxc-cirros lxc-download lxc-fedora-legacy lxc-local lxc-openmandriva lxc-oracle lxc-pld lxc-slackware lxc-sshd lxc-ubuntu-cloud
También puedes obtener la lista de plantillas en la página Image server for LXC and LXD.
Ejecución de comandos en un contenedor¶
Podemos ejecutar un comando en un contenedor que se esté ejecutando de la siguiente manera:
$ lxc-attach contenedor1 -- ls -al
si el contenedor está apagado, lo haríamos de la siguiente forma:
$ lxc-stop contenedor1
$ lxc-execute contenedor1 -- ls -al
Eliminar un contenedor¶
Para eliminar un contenedor podemos ejecutar la siguiente instrucción con el contenedor parado:
$ lxc-destroy contendor1
Si el contenedor está inicado podemos usar el parámetro -f
de la instracción lxc-destroy
para eliminarlo.