Contenedores con LXD

Uso mucho LXD para probar los programas que escribo dentro de un contenedor aislado de mi máquina de desarrollo. Aquí voy a ir poniendo los comandos que uso con frecuencia.

Para instalar LXD en Ubuntu:

$ sudo apt install lxd
$ newgrp lxd

Lanzar un nuevo contenedor:

$ lxc launch <imagen> <nombre-del-contenedor>

Por ejemplo, para lanzar un contenedor con Ubuntu 20.04 llamado focal:

$ lxc launch ubuntu:20.04 focal

Para compartir el directorio home entre la máquina huesped y el contenedor:

$ lxc config device add <nombre-del-contenedor> home disk source=~ path=/home/ubuntu

Para entrar al contenedor:

$ lxc exec <nombre-del-contenedor> -- su --login ubuntu

Para redirigir un puerto del contenedor a la máquina huesped:

$ lxc config device add <nombre-del-contenedor> <nombre-del-servicio> proxy listen=tcp:0.0.0.0:<número-de-puerto> connect=tcp:localhost:<número-de-puerto>

Por ejemplo, para redirigir el puerto 4000:

$ lxc config device add focal web-server proxy listen=tcp:0.0.0.0:4000 connect=tcp:localhost:4000