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.

Image of Datadog

The Essential Toolkit for Front-end Developers

Take a user-centric approach to front-end monitoring that evolves alongside increasingly complex frameworks and single-page applications.

Get The Kit

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

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay