Ejecución de aplicaciones GUI en Docker en Linux

Supongamos que intenta crear una aplicación de interfaz de usuario y la implementa como un contenedor de Docker. Si desea que la aplicación de interfaz de usuario muestre la interfaz de usuario en su máquina local mientras ejecuta la aplicación dentro de Docker Container, deberá conectar la pantalla de Docker Container con la pantalla de su máquina local. Supongamos que desea ejecutar Mozilla Firefox dentro de un Docker Container pero desea acceder al navegador Firefox en su máquina local. Puede hacer esto siguiendo algunos pasos simples que vamos a discutir en este artículo.

Al hojear todo el proceso, debe reenviar el socket X11 de su máquina Linux local al Docker Container para que lo use directamente. Junto con esto, también debe reenviar la variable de entorno llamada pantalla. Después de eso, debe configurar los permisos para el host del servidor. Repasemos estos pasos junto con el código.

1. Creando el archivo acoplable

Cree un dockerfile con el siguiente código.

FROM ubuntu:latest
RUN apt-get -y update
RUN apt-get -y install firefox
RUN apt-get -y install xauth

EXPOSE 8887
CMD firefox

El dockerfile anterior contiene la secuencia de instrucciones para crear una imagen base de Ubuntu, ejecuta una actualización apt en ella, instala Xauth y Firefox. Luego expone el puerto 8887 y ejecuta Firefox. Xauth simplemente permite que los contenedores Docker accedan a los servidores de visualización.

2. Copiar la cookie para conectar las pantallas del servidor X

En su máquina local, obtenga el valor de la cookie usando el siguiente comando.

xauth list

Authorization Cookie

Cookie de autorización

Copie la salida que sería de la forma como se muestra a continuación:

<username>/unix:  MIT-MAGIC-COOKIE-1  f1fa006c1e51fa8386209f85c57947c4

3. Cree la imagen de Docker

Cree la imagen de Docker con el siguiente comando.

docker build -t <image-name> .

Docker build command

Comando de compilación de Docker

4. Ejecute el contenedor Docker

Ejecute la imagen de Docker con el comando de ejecución de Docker.

docker run -it --net=host -e DISPLAY -v /tmp/.X11-unix <image-name> bash

Docker run command

Comando de ejecución de Docker

La imagen de Docker ahora está construida y el Contenedor se inicia. Aparece una fiesta interactiva de Ubuntu.

5. Añade la cookie a la lista

Debe agregar la cookie copiada en el paso anterior usando el siguiente comando.

xauth add <cookie>
xauth list

Adding Cookie

Agregar galleta

El comando list verificará que la cookie se haya agregado correctamente.

6. Ejecute la instancia de Firefox desde bash

Para ejecutar una instancia de Firefox, simplemente escriba «firefox» dentro del bash. Encontrará que el navegador Firefox aparece en su máquina local a pesar de que se está ejecutando dentro del Docker Container. Usando un proceso similar, puede ejecutar casi cualquier aplicación de interfaz de usuario dentro de Docker Containers y acceder a ella en su máquina local.

Running Firefox Instance

Ejecutando la instancia de Firefox

Para concluir, en este artículo vimos cómo crear una imagen de Docker usando el archivo docker , compilar y ejecutar la imagen. También discutimos cómo conectar la pantalla de Docker Container a la pantalla de la máquina local y cómo acceder a una aplicación de interfaz de usuario que se ejecuta dentro de Container en la máquina local.

Publicación traducida automáticamente

Artículo escrito por iamrj846 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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