DEV Community

Cover image for DAY 17: Docker Project for DevOps Engineers
On-cloud7
On-cloud7

Posted on

DAY 17: Docker Project for DevOps Engineers

Understanding the Dockerfile
At the heart of our Docker project lies the Dockerfile — a script that holds the key to building and running containers. Think of it as a recipe that tells Docker how to assemble and configure your application’s container. In simple terms, it’s a set of instructions that guides Docker on what base image to use, what commands to execute, and what files to include.

Crafting the Dockerfile
For our project, let’s consider a simple web application, say a Node.js or Python app. The Dockerfile would be our guiding hand in assembling the container. It could instruct Docker to use an official web server image, copy our web app’s files into the container, and kickstart the web server upon launch.

Building and Running the Container
Once our Dockerfile is ready, the real magic begins. We build the Docker image using the specified instructions. This process creates a containerized environment tailored to our web application. Running the container is like flicking the switch — it brings our application to life within its own encapsulated space.

Verifying the Application
Now, let’s put our creation to the test. Open up your favorite web browser and access the web application hosted within the Docker container. Witness the seamless integration as your application runs independently, encapsulated from the underlying system.

Pushing to the Repository
Our journey doesn’t end here — it’s time to share our masterpiece with the world. Whether it’s Docker Hub or a private repository, push the Docker image to make it accessible beyond your local environment. This step is crucial for collaboration and deployment on various platforms.

Today's Challenge: Building a Dockerized Web Application

Step 1: Create a Dockerfile

Let's start by crafting a Dockerfile for a simple web application. Whether it's a Node.js or Python app, your Dockerfile will guide the containerization process.

# Use an official base image 
FROM node:14 

# Set the working directory 
WORKDIR /app 

# Copy package.json and package-lock.json 
COPY package*.json ./ 

# Install dependencies 
RUN npm install 

# Copy the application files 
COPY . . 

# Expose the port the app runs on 
EXPOSE 3000 

# Define the command to run your app 
CMD ["npm", "start"]

Enter fullscreen mode Exit fullscreen mode

Step 2: Build and Run the Docker Container
Open your terminal, navigate to the directory containing your Dockerfile and application code, and execute the following commands:


# Build the Docker image 
docker build -t your-image-name . 

# Run the Docker container 
docker run -p 3000:3000 -d your-image-name

Enter fullscreen mode Exit fullscreen mode

Step 3: Verify the Application
Open your web browser and navigate to localhost:3000. If all goes well, you should see your web application up and running.

Step 4: Push to a Repository
Now, let's share your Dockerized masterpiece with the world. Push the Docker image to a public or private repository, such as Docker Hub.

# Log in to Docker Hub (replace with your Docker Hub username) 
docker login 

# Tag your image docker 
tag your-image-name your-dockerhub-username/your-image-name 

# Push the image to Docker Hub
docker push your-dockerhub-username/your-image-name

Enter fullscreen mode Exit fullscreen mode

Top comments (0)