Launching a Docker Container to run Python code

Docker is a tool that makes it easier to create, deploy, and run applications by using containers. These containers allow packaging an application with needed parts such as libraries and dependencies, and deploy it as a single package. In this simple walkthrough, we’ll try to launch a centos container using docker and then install and run python files in that container. I have used Red Hat Enterprise Linux 8 as my base OS here.

Installing Docker

In RHEL8, we need to enable a repository to install packages. To install Docker Comunity Edition (docker-ce) we need to first enable the docker-ce repository, which can be done by running the command, dnf config-manager — add-repo=https://download.docker.com/linux/centos/docker-ce.repo

We can now install docker by running the command dnf install docker-ce --nobest ( the--nobest option is to get the version of docker-ce without any dependency errors).

We can run rpm -q docker-ce to check if docker is installed, start the service using systemctl start docker , and run systemctl status docker to check the status of the service.

Pulling an image

To create a container, we need an image as a base. Here I’m using centos as my base image and to get this image run the command, docker pull centos.

Before we create the container, we need to stop the system firewall so that the container can access the public network. We do this by running systemctl stop firewalld.

Running a container

To run a container using the pulled image, use the command docker run -it name pycontainer centos:latest(the name pycontainer can be replaced with any name). This command launches an interactive pseudo terminal for the container.

Running python code

Yum/dnf is preconfigured with the AppStream and BaseOS repos, thus we can directly install python using yum: yum install python38.

Open a separate terminal tab for the host and run docker cp to copy the desired python files from the host to the container: docker cp <src_path> pycontainer:<dest_path>. Here, I’m copying a dataset and Python program that trains a LinearRegression model based on that dataset to predict profits.

Depending on the python program, there might be libraries that you need to install. In the program I’m using I need the pandas, numpy, and scikit-learn python libraries. These libraries can be installed using pip3 in the container terminal: pip3 install <library>.

We can now run the python file using the command, python3 <file.py>.

That’s all there is to this simple task. I Hope it was informative.
Thankyou :)

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Gaius Reji

Gaius Reji

22 Followers

Cloud | Big Data | Software Development | System Administration | Aspiring to grow my skills in the field of computer science and technology.