Launching a GUI application on the top of Docker Container
Hello everyone, in this blog, I am going to tell you how we can run a GUI application inside a Docker container.
Pre-requisites
- Docker should be downloaded and configured on a Linux system
After completing all the pre-requisites we can follow these simple steps:
Step1: Pull the docker image. You can use any container image. Here, I am using centos: latest
docker pull centos:latest
Step2: Run the docker container
docker run -it --net=host --env="DISPLAY" --name CONTAINER_NAME centos:latest
While running the docker container, it is mandatory to specify the net= host so that the container will use the local network for the network connection and env= DISPLAY. Because we need to run a GUI application on the top of the container that’s why we need to set an environment as a display.
After running this command a new terminal screen will appear.
This / sign means that we are not in our local machine but in our GUI container.
Step3: Install the required packages
yum install python3 firefox
Step4: Install the required libraries for python3 to run the code
pip3 install jupyter sklearn
Now, our environment is all set up. We need to launch the Jupiter notebook from the command line.
jupyter notebook --allow-root
That’s all, our jupyter notebook is launched on the top of a Docker container
BONUS
In case you are having some trouble setting up the environment, I have also created my own custom image for launching Jupiter notebook on the top of the container. I used the concept of Dockerfile for creating it.
You can also use my custom image by entering the following command
docker pull gaurav2203/gui:latest
This will directly download the image on your local workspace. Then for running the container use this command.
docker run -it --net=host --env="DISPLAY" --name CONTAINER_NAME gaurav2203/gui:latest
This will directly launch the Jupiter notebook.
You can also find the code of Dockerfile here.
Thank you for reading hope you find this blog useful.