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 # 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
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
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 .
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 🙂