Graphical User Interface (GUI) inside Docker
Docker is a platform through which we can host multiple operating systems in less than a minute, in the form of containers through an image, which is a template containing set of instructions for the container to be created
In this task, I have created an image inside Docker because for opening GUI software inside Docker we need to create our own image with the help of any pre-existing image(centos) inside Docker so that afterwards we can create an operating system over our own image and will be able to run a GUI software in our Operating System. For creating an image, we need to create a Dockerfile because at the time of building our image, it will fetch the code from Dockerfile for creating the image. The need for creation of image is because we cannot run GUI software on any pre-existing images in Docker, because the developers or the community who has created that particular image has not allowed for running a GUI software in the operating system created over their image. So you can check below the steps to create our image and then creating an operating system over that image and running GUI software inside that operating system
First of all, we have to start docker for performing operations related to docker
Create a workspace, here I have created one with the name docker_gui for performing my tasks inside this particular directory
After that, create a Dockerfile with the help of touch command. Dockerfile is needed to create so that we can create our own image with our specifications
Edit the Dockerfile to enter your commands
vim Dockerfile
Here, I have written FROM centos for creating a similar image like centos and after that RUN is used to install the components at the time of building of image so that when we create operating system over our image then that particular operating system would contain pre-installed components which we provided in the RUN command in Dockerfile. “&& \” is used so that whatever is written in the next line will run as a next command after the first one, generally used for providing multiple commands with RUN and “-y” is provided to automatically consider YES as option whenever it prompts during installation
docker build -t image_name:version path
This command is used to build the image with the version name and after that we have to provide the path wherever we have to build the image, here I have used dot to provide the path as current directory
As we can check here that our image skimg has been successfully built
docker run -it --env="DISPLAY" --net=host --name os_name image_name:version
Now, create an operating system over the image with the above command. In this docker run is used for creating and running the operating system and passed env variable with DISPLAY in the container to provide GUI to our operating system and net=host means running our container as the same network as host
After checking the containers, we can find our operating system created over our image
Install jupyter notebook to run as it is a GUI software
Open jupyter notebook with the help of the above command
Finally, jupyter notebook successfully ran in our operating system, launched with the help of mozilla firefox
Thankyou for reading my blog, do provide your valuable feedback in the comments. DM me on LinkedIn for any queries related to this blog 👐