Let’s create a simple Dockerfile for a Python application. This example assumes you have a Python script named app.py
and a requirements.txt
file containing the dependencies for your application.
Open a terminal.
Navigate to the directory where you want to create or edit the Dockerfile.
Type
vi Dockerfile
and press Enter. This will open thevi
editor with a new file namedDockerfile
.Press
i
to enter insert mode. You can now start typing your Dockerfile contents.Once you’re done editing, press
Esc
to exit insert mode.Type
:wq
and press Enter to save the changes and exitvi
. If you want to exit without saving, type:q!
and press Ente
# Use an official Python runtime as a parent image
FROM python:3.9-slim
# Set the working directory in the container
WORKDIR /app
# Copy the current directory contents into the container at /app
COPY . /app
# Install any needed dependencies specified in requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
# Make port 8080 available to the world outside this container
EXPOSE 8080
# Define environment variable
ENV NAME World
# Run app.py when the container launches
CMD ["python", "app.py"]
In this Dockerfile:
We’re using the official Python Docker image with version 3.9 (specifically, the slim variant, which is smaller).
We set the working directory inside the container to
/app
.We copy the current directory (where your
app.py
andrequirements.txt
files should reside) into the container at/app
.We install the Python dependencies specified in
requirements.txt
.We expose port 8080 to allow communication with the container.
We set an environment variable
NAME
to "World" (you can change this as needed).Finally, we specify that the command to run when the container starts is
python
app.py
.
To build an image using this Dockerfile, navigate to the directory containing the Dockerfile and run:
docker build -t my-python-app .
Replace my-python-app
with the desired name for your Docker image.
After building the image, you can run a container from it using:
docker run -p 8080:8080 my-python-app
This command runs a container based on your Docker image, forwarding port 8080 from the container to port 8080 on your host machine. Adjust the port mapping as needed based on your application’s requirements.