Docker, how well do you know it?

Ibnu Farhan
Core Network Laboratory Tech Page
3 min readSep 28, 2018

Docker, the world’s leading container platform was build to solve common problems related to limited resource for deploying, developing or managing applications. Developing, shipping, and running applications has become easier through container technology. New to container? This previous article explains about container and its differences with virtual machine (VM).

Docker provides container platform that is flexible, lightweight, interchangeable, portable, scalable, and stackable. These all features can increase effectiveness in deploying, developing and managing applications, especially in a bigger (enterprise) scale.

I, myself starting to use Docker for a while now. As a beginner, it is quite easy to learn deeper about Docker. You can read the complete “A to Z” documentations of Docker through their official Docker documentation page. My interest for docker is mainly in its simplicity, using the Docker, we can create, expose and manage container through CLI, but if you prefer to use GUI, there are few third-party applications that provides ease container management using web GUI, one of them is Portrainer.

Well, this article is actually just me trying to share my thoughts about Docker while pursuing you to try and check Docker out. Now let’s get to the deep but brief description about Docker’s components.

Docker architecture

Fig. 1 — Docker architecture.

Fig.1 shows there are three main“layers” in the Docker architecture,

  • Docker daemon

Docker daemon is the “machine” of the entire Docker. Its job is to manages images, containers, networks, and also volumes. Docker daemon waits and listens for requests from the user through Docker client.

  • Docker client

This is the layer where the user or admin are able to interact with Docker. Users can build images, pull images, and run containers using the command docker build, docker pull, and docker run. The commands are sent by the client to the daemon, where the actual process is happening.

  • Docker registries

Docker registries is the place where they store Docker images. You can pull images from the registries when you want to use default or other people’s images. Docker Cloud and Docker Cloud are public registries that anyone, including you can use (pull).

You can also save and share your own custom images (with all apps configured) to the Docker registries using the docker push command. This feature eases developers to exchange and share container images quickly.

Docker Engine

This section briefly explains deeper on how does docker works inside.

Fig. 2 — Docker engine components flow.
  • The core part is the docker daemon that acts like a server.
  • REST API is the one that connects client to the server.
  • Docker CLI (command line interface) is where the user interact with docker, while all of the instructions are passed to the docker daemon through the REST API.

Interested?

This article is just the small part of what Docker actually is, this is just the basic part which is only focusing on the basic concepts. There are many use cases related to using Docker as the solutions of various problems out there.

What are you waiting for? Go get Docker and try it on your own!

--

--

Ibnu Farhan
Core Network Laboratory Tech Page

Brewing coffee day by day at Hirup Kopi while having fun at Mola Art Gallery