LINUX

Cómo ejecutar aplicaciones GUI en un contenedor Docker

Hola a todos, hoy aprenderemos cómo podemos ejecutar aplicaciones GUI dentro de un contenedor Docker. Podemos ejecutar fácilmente la mayoría de las aplicaciones de GUI comunes sin tener problemas dentro de un contenedor Docker. Estibador es un proyecto de código abierto que proporciona una plataforma abierta para empaquetar, enviar y ejecutar cualquier aplicación como un contenedor liviano. No tiene límites de compatibilidad con idiomas, marcos o sistema de empaquetado y se puede ejecutar en cualquier lugar y en cualquier momento, desde pequeñas computadoras domésticas hasta servidores de alta gama. Los convierte en grandes bloques de construcción para implementar y escalar aplicaciones web, bases de datos y servicios de back-end sin depender de una pila o proveedor en particular.

Estos son los pasos rápidos y fáciles sobre cómo podemos ejecutar una aplicación GUI en un contenedor Docker. En este tutorial, tomaremos Firefox como ejemplo.

1. Instalación de Docker

En primer lugar, antes de comenzar, debemos asegurarnos de tener Docker instalado en nuestro sistema operativo host Linux. Aquí, estamos ejecutando CentOS 7 como host, por lo que ejecutaremos yum manager para instalar la ventana acoplable usando el siguiente comando.

# yum install docker

Instalación de Docker

# systemctl restart docker.service

2. Creando Dockerfile

Ahora, mientras nuestro Docker Daemon se está ejecutando, ahora nos prepararemos para crear nuestro contenedor de Docker de Firefox. Crearemos un Dockerfile donde ingresaremos la configuración requerida para crear un contenedor de Firefox que funcione. Buscaremos la última versión de CentOS para nuestra imagen de Docker. Para hacerlo, crearemos un archivo llamado Dockerfile usando nuestro editor de texto favorito.

# nano Dockerfile

Luego, agregaremos las siguientes líneas de configuración en Dockerfile y luego lo guardaremos.

#!/bin/bash
FROM centos:7
RUN yum install -y firefox
# Replace 0 with your user / group id
RUN export uid=0 gid=0
RUN mkdir -p /home/developer
RUN echo "developer:x:${uid}:${gid}:Developer,,,:/home/developer:/bin/bash" >> /etc/passwd
RUN echo "developer:x:${uid}:" >> /etc/group
RUN echo "developer ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
RUN chmod 0440 /etc/sudoers
RUN chown ${uid}:${gid} -R /home/developer

USER developer
ENV HOME /home/developer
CMD /usr/bin/firefox

Interfaz gráfica de usuario de Dockerfile

Nota: Reemplace 0 con su identificación de usuario y grupo en la cuarta línea de la configuración. Podemos obtener el uid y el gid del usuario actual ejecutando el siguiente comando en un shell o terminal.

#  id $USER

ID de usuario

3. Construcción de contenedores Docker

Ahora crearemos el contenedor que funcionará de acuerdo con el Dockerfile anterior. Instalará el navegador web Firefox y sus paquetes requeridos. A continuación, establecerá el permiso de usuario para que funcione. Aquí, el nombre de la imagen se establece como firefox, puede nombrarlo como desee.

# docker build --rm -t firefox .

Construyendo Firefox Docker

4. Ejecución de contenedor de Docker

Ahora, finalmente, si todo salió bien, podremos ejecutar nuestra aplicación GUI, es decir, el navegador Mozilla Firefox desde dentro de nuestro contenedor Firefox Docker que se ejecuta en una imagen de CentOS 7.

# docker run -ti --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix firefox

Conclusión

Ejecutar aplicaciones GUI en un contenedor Docker es realmente una experiencia increíble que nunca dañará / usará su sistema de archivos host. Depende totalmente de su contenedor Docker. En este tutorial, probamos Firefox en nuestra imagen de Docker de CentOS 7 con Firefox instalado. Podemos usar muchas más aplicaciones GUI con esta tecnología. Si tiene preguntas, sugerencias o comentarios, escríbalos en el cuadro de comentarios a continuación para que podamos mejorar o actualizar nuestros contenidos. Gracias ! Disfrutar 🙂

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar