Skip to main content

Command Palette

Search for a command to run...

Day 17 : Docker Project Unleashed!

Published
β€’3 min read
Day 17 : Docker Project Unleashed!
V

"DevOps enthusiast and aspiring engineer. Currently honing skills in streamlining development workflows and automating infrastructure. Learning AWS, Docker, Kubernetes, Python, and Ansible. Eager to contribute and grow within the DevOps community."

Hello DevOps enthusiasts! πŸ‘‹ Today's challenge is an exciting one as we dive deep into a hands-on Docker project. Let's embark on this journey of containerization and discover the power of Docker in action. πŸ’»πŸŒ

Crafting a Dockerfile for a Simple Web App Container

Why Dockerfile?

Dockerfile acts as a blueprint for creating Docker images. It encapsulates instructions for building a container with all dependencies and configurations, ensuring consistency across different environments.

DockerfileCopy code# Use an official base image
FROM node:14

# Set the working directory
WORKDIR /usr/src/app

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

# Install app dependencies
RUN npm install

# Bundle the app source
COPY . .

# Expose the port
EXPOSE 3000

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

1. Create a Dockerfile

We've chosen a Node.js base image and defined steps to set up our web app.

2. Build & Run the Container

Execute the magic with the following commands:

bashCopy codedocker build -t my-web-app .
docker run -p 3000:3000 my-web-app

These commands build the Docker image and run a container, exposing port 3000.

3. Verify in the Browser

Visit http://localhost:3000 in your browser to ensure your web app is working seamlessly within the Dockerized environment.

4. Image to the Repository

Take it a step further by pushing the Docker image to a repository. Docker Hub is a popular choice for public visibility.

bashCopy codedocker login
docker tag my-web-app your-docker-username/my-web-app
docker push your-docker-username/my-web-app

Now, your Docker image is accessible globally.

Understanding the Magic of Docker

Containerization Benefits

  • Isolation: Containers encapsulate applications and dependencies, ensuring they run consistently across different environments.

  • Resource Efficiency: Containers share the host OS kernel, making them lightweight and efficient compared to traditional virtual machines.

  • Rapid Deployment: Docker containers can be started or stopped almost instantly, facilitating quick application deployment.

Docker Commands

View Container Details:

bashCopy codedocker inspect container-id

List Port Mappings:

bashCopy codedocker port container-id

View Resource Usage:

bashCopy codedocker stats container-id

View Running Processes:

bashCopy codedocker top container-id

Save & Load Images:

bashCopy codedocker save -o my-web-app.tar my-web-app
docker load -i my-web-app.tar

That concludes our exhilarating Docker project journey! πŸŽ‰ Today, you ventured into the realm of Docker, crafted a Dockerfile masterpiece, built a containerized web app, and even shared your creation globally on Docker Hub. As you navigate through the DevOps landscape, these hands-on experiences pave the way for a robust skill set.

Key Takeaways:

Containerization Magic: Docker simplifies the complex task of packaging and deploying applications. Containers bring consistency, isolation, and efficiency to your software delivery process.

Dockerfile Mastery: Understanding the Dockerfile empowers you to define reproducible builds, ensuring your application runs seamlessly across diverse environments.

Lifecycle of a Container: From building an image to running a container, exposing ports, and pushing to a repository, you've embraced the complete lifecycle.

DevOps Ready: Armed with Docker skills, you're better equipped to tackle real-world DevOps challenges, where containerization plays a pivotal role.

Devops

Part 1 of 50

More from this blog

Untitled Publication

96 posts