[TIP] Creando y usando imagenes con LXC

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • jmtella
    Administrator
    • Nov
    • 20685

    [TIP] Creando y usando imagenes con LXC

    Aconsejo ver los articulos (por este orden) Si hemos seguido esos articulos se supone que hemos creado son listas en nuestra maquina: my-images e images-wsl cada una con su contenedor / contenedores.
    Por defecto tendremos una de ellas, en mi caso my-images.

    Si ejecutamos lxc remote list nos muestra todas las imagenes, las dos que hemos creado y otras estandard de la herramienta. Ahora con lcx list nos muestra los contenedores en la que tengamos por defecto (en mi caso, my-images) pero tambien podemos ver los contenedores de mi otra imagen en local, images-wsl, ejecutando lxc list images.wsl:

    Haga clic en la imagen para ver una versión más grande  Nombre:	lxc-r.png Visitas:	0 Size:	167,7 KB ID:	41068

    De la misma forma, podemos ejecutar un contenedor:

    Código:
    lxc exec first-mp  bash
    lo anterior ejecutará songre las imagenes por defecto (my-images), pero si queremos ejecutar un contenedor de los que tenemos en otra imagen simplemente lo prefijamos con el nombre de la imagen:

    Código:
    lxc exec images-wsl:first  bash
    Si nos fijamos ahora en todas las imagenes por defecto (arriba de la pantalla anterior) vemos una que pone images. Son las imagenes que estan dispoibles en la red para instalar. Si queremos ver el contenido:

    Código:
    lxc image list images:
    Fijarse en los dos puntos al final, en images:

    Esto nos muestra una salida inmensa, pero si queremos ver por ejemplo los contenedors que tienen un linux Mint, podemos filtar:

    Código:
    lxc image list images: | find /i "Mint"
    Haga clic en la imagen para ver una versión más grande  Nombre:	lxc-r1.png Visitas:	0 Size:	133,0 KB ID:	41069
    Esto nos servirá para instalar el contendor que queramos desde la red.

    Por ejemplo:

    Código:
    lxc launch images:mint/sylvia/i386  Mint
    EL cual nos los instalará es la imagen que tengamos por defecto (my-images en mi caso).
    Si queremos cambiar la imagen por defecto, simplemente:

    Código:
    lxc remote switch my-images-wsl

    INSTALANDO UN SERVIDOR WEB EN UN CONTAINER

    Imaginemos que queremos instalar en nuestro contenedor llamado first que tenemos en images-wsl un servidor WEB, por ejemplo el simple nginx de linux.

    Tenfremos que permitir port forwarding desde la maquina que conotnen las imagenes, al container en el cual vamos a instalar el servidor.

    Entramos en la maquina en donde tenemos instalado el contenedor (en este caso en el WSL 2 en donde hemos instalado los contenedores y ejecutamos para configurar el port forwarding:

    Código:
    lxc config device add <container> myport80 proxy listen=tcp:0.0.0.0:80 connect=tcp:127.0.0.1:80
    lxc config device add <container> myport443 proxy listen=tcp:0.0.0.0:443 connect=tcp:127.0.0.1:443
    Sustituir <container> por el nombre del contenedor, en mi caso; first.

    Los nombres myport80 y miport443 pueden ser cualquiera.

    Para ver si efectivamente está escuchando en dichos puertos, ejecutamos:

    Código:
    sudo lsof -i -n | grep http
    Vermos que efectivamente lo está.

    Si en algun momento queremos elminar algun puerto:

    Código:
    lxc config device remove <container> myport80
    Entramos ahora en el contendor e instalamos dentro de el el server web:

    Código:
    lxc exec <container> bash
    sudo apt update
    sudo apt upgrade
    sudo apt install -y nginx
    Y ya lo tenemos. Para verificar que funciona, sdesde un navegador accedemos a http://IP_MAQUINA_WSL2

    FIjaros que vamos a la ip de la maquina que CONTIENE los contenedores, la cual acabamos de confiorarle el port forwarding... y efectivamente comprobamos que llegamos al server nginx


    Haga clic en la imagen para ver una versión más grande  Nombre:	lxc-w.png Visitas:	0 Size:	30,9 KB ID:	41072




    A jugar... Id probando...
  • jquilezl
    Super Moderator
    • Dec
    • 724

    #2
    Instalado un Apache. Ha costado lo suyo porque he tenido que desinstalar todo y volver a empezar desde cero, pero ahora sí funcionan los contenedores y docker correctamente.

    El Ubuntu que hace de host de los contenedores:

    Haga clic en la imagen para ver una versión más grande

Nombre:	apache_ubuntuhost.JPG
Visitas:	540
Size:	37,6 KB
ID:	41085

    Y el acceso al Apache instalado en el contenedor first:

    Haga clic en la imagen para ver una versión más grande

Nombre:	apache.JPG
Visitas:	581
Size:	133,5 KB
ID:	41084

    Comentario

    • jquilezl
      Super Moderator
      • Dec
      • 724

      #3
      Lo que no termino de ver es por qué no podemos acceder directamente a la IP del contenedor. De hecho, desde Windows puedo hacer un ping al ubuntu y responde, pero no el contenedor, y sin embargo desde ubuntu hago ping al contenedor y responde. En sentido contrario sí funciona, un ping desde el contenedor a la ip del Windows responde sin problemas.

      Supongo que por eso es por lo que hay que forzar la redirección en ubuntu, pero alguna forma tiene que haber de poder acceder directamente al servidor web con la ip del contenedor.
      Editado por última vez por jquilezl; 12/04/2020, 19:24:50.

      Comentario

      • jmtella
        Administrator
        • Nov
        • 20685

        #4
        Originalmente publicado por jquilezl Ver Mensaje
        Lo que no termino de ver es por qué no podemos acceder directamente a la IP del contenedor. De hecho, desde Windows puedo hacer un ping al ubuntu y responde, pero no el contenedor, y sin embargo desde ubuntu hago ping al contenedor y responde. En sentido contrario sí funciona, un ping desde el contenedor a la ip del Windows responde sin problemas.

        Supongo que por eso es por lo que hay que forzar la redirección en ubuntu, pero alguna forma tiene que haber de poder acceder directamente al servidor web con la ip del contenedor.
        Recuerda que está haciendo un NAT ... y tu a traves de NAT no puedes hacer un ping a los nateados...

        Comentario

        • jquilezl
          Super Moderator
          • Dec
          • 724

          #5
          Vale, estaba espeso con tanta reinstalación.

          Comentario

          Trabajando...
          X