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