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