DEV Community

Cover image for Docker - Fundamentals
Ibrahim S
Ibrahim S

Posted on

Docker - Fundamentals

Here’s a description of the key components of Docker and their purpose.

The application we use to interact with Docker. There are mainly 2 clients.

  1. Docker CLI
  2. Docker Desktop GUI.

Honestly, if you master the CLI, I don’t see the need for any other docker client.

👉 Daemon
The backend server which does all the heavy-lifting. It receives requests from clients and creates, runs & manages all Docker objects (including containers).

👉 Host
The machine that runs the Docker Daemon. This machine essentially provides all resources to run containers.
This could be your laptop or a powerful server in the cloud.

👉 Container
Runs your application in an isolated environment. The whole reason Docker exists.
A container is an instance of a Docker image.

👉 Image
A blueprint for containers. A filesystem that contains all assets for your application to run successfully, all instructions on how to build and run your app.

👉 Dockerfile
The code file in which you write the Image definition. You supply this file to Docker to create an image out of it.

👉 Network
Provides connectivity between Docker containers so they can communicate with each-other. There are several types of Networks, the default one is “bridge”.

👉 Volume
Provides storage for containers. This ensures that any valuable data generated inside your containers is persisted beyond the lifecycle of the container itself.

👉 Registry
A place to store & distribute Docker images. You can create public or private repositories. Think of it like Git, but for container images.
By default, Docker uses DockerHub as registry. Other examples are AWS ECR, JFrog.

👉 Plugins
Allow you to extend Docker’s functionality. Currently, you can develop/use plugins for authorization, volumes & network.

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

Top comments (2)

Collapse
 
prateektom profile image
Prateek Tomar

Can we run docker in wsl ( windows subsystem for Linux) ?

Collapse
 
ibrahimsi profile image
Ibrahim S

Yes. If you learn the basics, use the WSL, but from my suggestions, install Docker as your primary OS.

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Explore a sea of insights with this enlightening post, highly esteemed within the nurturing DEV Community. Coders of all stripes are invited to participate and contribute to our shared knowledge.

Expressing gratitude with a simple "thank you" can make a big impact. Leave your thanks in the comments!

On DEV, exchanging ideas smooths our way and strengthens our community bonds. Found this useful? A quick note of thanks to the author can mean a lot.

Okay