DEV Community

Cover image for What is Docker? - Day 3 Of #100DaysOfFullStackChallnege
Zende Aditya
Zende Aditya

Posted on

What is Docker? - Day 3 Of #100DaysOfFullStackChallnege

This Blog is about the basics of Docker.
What is Docker?

So, let's start,
*## What is Docker? *
Docker is a Platform as a Service. (PaaS). The main use case of docker is to containerization of the app.

There are two main components of Docker

  1. Docker Image.
  2. Docker Container.

Docker Image

Docker Image is a stand-alone executable package that contains all of the components required to run a piece of software, including the code, a runtime, libraries, environment variables, and configuration files is called a Docker image.

Docker Container

A Docker Container is a runtime instance of an image. Containers make development and deployment more efficient since they contain all the dependencies and parameters needed for the application it runs completely isolated from the host environment.

How to build a Docker Image

To create a Docker Image you need to create a dockerfile file in your project root directory. Make sure you use the same name and this does not have any extension.

dockerfile img

There are several dockerfile commands

1. FROM [:]

Specifies the base image to use for the subsequent instructions. The base image can be any valid Docker image, including OS images like alpine and Ubuntu, or application-specific images like node, python, etc.

This is the command that is executed first before any other commands.

Syntax :
FROM

Example :
FROM node:latest. You can write like FROM node:vesion_you_want.

** 2. RUN**

Executes a command in a new layer on top of the current image and commits the result. Commonly used for installing dependencies.

Syntax :
RUN < Command + ARGS>

Example :
RUN apt-get update && apt-get install -y curl

This command will update the package list and install curl in the image.

3. COPY

This command is used to copy the file or a folder while creating a docker image.

Syntax :
COPY

Example :
COPY . /app

you can write
COPY . .

4. ADD

We can download the files while creating a image

Syntax :
ADD

Example :
ADD https://example.com/file.tar.gz /app/

Downloads a file from the given URL and extracts it into the /app/ directory.

5. WORKDIR

Sets the working directory for any subsequent RUN, CMD, ENTRYPOINT, COPY, and ADD instructions.

Syntax :
WORKDIR

Example :
WORKDIR /src

Changes the working directory to /src

6. CMD

The main purpose of the CMD command is to start the process inside the container and it can be overridden.

Syntax :
CMD ["executable","param1","param2"]

Example :
CMD ["node", "index.js"]

Specifies that node index.js should be run when a container is started from the image.

This is how dockerfile look like

# Use an official Node.js image as the base image
FROM node:14

# Set environment variables
ENV NODE_ENV=production

# Create and change to the app directory
WORKDIR /usr/src/app

# Copy application dependency manifests to the container image
COPY package*.json ./

# Install dependencies
RUN npm install

# Copy the local code to the container image
COPY . .

# Expose the port the app runs on
EXPOSE 3000

# Define the default command to run the app
CMD ["node", "index.js"]

Enter fullscreen mode Exit fullscreen mode

Image description

That's all for today!

Thank you for joining me on this journey through the 100 Days Full Stack Challenge. Each day brings new insights, challenges, and opportunities for growth, and I'm thrilled to share every step with you. Your support and feedback mean the world to me, and I'm excited to continue building and learning together. 🚀

Don't forget to follow my progress on my personal website and stay connected on Dev.to, Medium, and Hashnode. Let's keep pushing the boundaries of what's possible in web development! 🌐💻

Until next time, keep coding, keep creating, and keep pushing forward. 💪✨

Top comments (0)