Docker deep level with architecture — part 1

Why you need to read this post?

You know the docker but you don’t know how docker work in background (architecturally) .

What Happend Old Days?

As you know old days we one application run one a one server if we use server to host applications. But you know linux and windows, didn’t have safely and securely run multiple applications on the same server.

Wow (wow for those days) VMs

Several companies. But first I think VMware, Inc.

Okay next Docker….. ! No next container.

Big companies like Google used some containertechnologies to address the shortcomings of the VM model.

New Containers

Google helped a lot to improve containers. Thats how new containers came for us.

Now Docker. What is the Docker?

Docker is an open-source engine that automates the deployment of applications into containers. It was written by the team at Docker, Inc (formerly dotCloud Inc, an early player in the Platform-as-a-Service (PAAS) market), and released by them under the Apache 2.0 license

Docker Technology

Docker is written in the Go programming language and takes advantage of several features of the Linux kernel to deliver its functionality. Docker uses a technology called namespaces to provide the isolated workspace called the container. When you run a container, Docker creates a set of namespaces for that container.

  1. The daemon(a.k.a.engine)
  2. The orchestrator

Docker architecture🔗

Docker uses a client-server architecture. The Docker client talks to the Docker daemon, which does the heavy lifting of building, running, and distributing your Docker containers. The Docker client and daemon can run on the same system, or you can connect a Docker client to a remote Docker daemon. The Docker client and daemon communicate using a REST API, over UNIX sockets or a network interface. Another Docker client is Docker Compose, that lets you work with applications consisting of a set of containers.

How to secure client and daemon(server) communication ?

the client application call as docker (docker.exe on windows) and server called dockerd (dockerd.exe on windows). default installation puts on the same host and communicate over the IPC socket.By default, network communication occur over an unsecured HTTP socket on port 2375/tcp.

  1. Create a CA
  2. Create and sign keys for the Daemon
  3. Create and sign keys for the Client
  4. Distribute keys
  5. Configure Docker to use TLS
  6. Configure daemon mode
  7. Configure client mode

More topics to talk . Will go one by one for the deeper in next few posts.

  1. images
  2. Docker containers
  3. Docker compose
  4. Docker swarm
  5. Docker networking
  6. Volumes
  7. Docker stacks

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store