Docker Architecture

Docker uses a client-server architecture.

The Docker client talks to the Docker daemon (server), which menages different docker objects:
- Images
- Containers
- Networks
- Volumes

Let's see in details:

... 1/12
The Docker client and the daemon can run on the same system, or they can be connected remotely using HTTP protocol.

The connection is established using REST APIs, over UNIX sockets/network interface

... 2/12
DOCKER DAEMON (SERVER)

The Docker daemon (dockerd) is a process, which runs in the background, that manages the docker objects (images, containers, networks, volumes). It processes Docker API requests

... 3/12
DOCKER CLIENT
The main way of interacting with Docker.

When you use commands such as docker run, the client sends these commands to dockerd, which carries them out.

The docker command uses the Docker API.

One client can communicate with multiple daemons.

... 4/12
IMAGES
Read-only binary templates that contain instructions and metadata for creating Docker containers.

You can use existing images, or create your custom one, starting from an existing one, or even from scratch.

... 5/12
Images can be created by defining a Dockerfile, which is a text file that contains commands used to create the image, one layer per instruction.

Docker uses a system of caching so a new layer is built only if it changed. It’s super effective!

...6/12
CONTAINERS

Runnable instances of an image. Multiple containers can be instantiated from the same Image. They can be created/started/stopped/deleted using the Docker API/CLI, and are isolated from other containers and the host machine using namespaces (Linux feature).

...7/12
Containers can be attached to networks, or be connected with storage. This is important because they are ephemerals, so when they are removed, each state not stored is lost

...8/12
NETWORKS
Containers can be connected to each other or to non-Docker services, using networks/drivers.

5 types of Networks:

- bridge: allows containers connected to communicate, and it provides isolation from containers that are not connected to that bridge network.

...9/12
- HOST: removes network isolation between the container and Host

- OVERLAY: connects Docker daemons. Enables swarm services

- MACVLAN: Assigns a MAC address, used by the Docker daemon to access it. Useful for legacy applications.

- NONE: Disable networking.

...10/12
STORAGE:
Without persistent storage, containers are (almost) useless: all data is lost after removal

4 ways of persisting data:

- Data Volumes: Persistent storage on the host file system, with the ability to rename/list volumes, and list the container associated.

... 11/12
- Volume Container: A container hosts a volume, mounting it for other containers. It's shareable between containers.

- Directory Mounts: Use a directory on the Host.

- Storage Plugins: Connect to external storage, mapping storage from the host to an external source.

... 12/12

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Francesco Ciulla

Francesco Ciulla Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @FrancescoCiull4

15 Apr
🟢That was a V-BLAST!!!🟢

I Tried VueJs for the First Time, it really impressed me!

My regret: We just scratched the surface

Thank you @themarcba for guiding me! I hope to give back if you wanna try🐳!

Special Thanks to @spences10 for the Donation!

🧵Of Best Moments Below.
Time: 4:50

Marc Experience as a Speaker and Tech Stack

Time 6:54

I will his next Guest in Decoding the Code Series!

Read 13 tweets
18 Feb
Today I tried Flutter and Dart for the first time, live, together with @tadaspetra

Here there are some highlights!!!

Spoiler:

In 100 minutes, from ZERO, we got a working built application (apk file) for Android, starting from zero.

On Windows.

That's amazing

A 🧵
Video Link:


Would you like a shorter version of this live?
Please let me know!
These were the Livestream Goals and what I had already installed

I had already:
- VS code installed
- Android Studio (wrong SDK version)
- Emulator Set

Goals:
- Install dart language
- Install Flutter
-Create a hello-world app
- Modify it a little bit
- Create the apk file
Read 21 tweets
7 Jan
Tailwind CSS - First impressions

I have Tried Tailwind CSS for the first time.

I studied directly from the official docs

I can say that I like what I've seen so far.

I will definitely use it for the next projects that will include a frontend.

A Thread of my impressions 🧵 Image
✅SIMPLE = GOOD

The first thing that struck me was the simplicity with which it can be integrated into a simple project.

It is from this that we know if a Framework will be successful and I'm sure it will.

I don't know why something like this hasn't existed for a long time
🛠️CUSTOMIZATION

I was expecting something like bootstrap but improved instead the approach is completely different.

Yes in Bootstrap you can always customize the elements, but I always found it complicated and every time I found myself rewriting the same custom classes.
Read 7 tweets
5 Jan
Yesterday I stayed away from social networks to think about 2021 without distractions.

I'll divide my week with "MAIN TOPIC OF THE DAY".

This is good for me, and for those who follow me to get free updates.

Thread below. Ask me Anything

RT if this can be useful to a friend. Image
⚛️MONDAY: REACT

I'll dedicate Mondays to React.

I will start with some small tips on Twitter, then with some basic projects.

It will be funny!
🟩🟨TUESDAY: NODE & JAVASCRIPT

I'll dedicate Tuesdays to Node JS

I will share some info about it and Javascript of course:

Tweets, some small projects.

I will show every project and library/feature I'll use.
Read 10 tweets
1 Jan
One of my purposes for 2021 is to simplify Docker for beginners.

Let's start with some definitions:

🏠Docker host
⚙️Docker engine
❓ Docker client
📝Dockerfile
📑Docker Image
🐳Docker Container
🐙Docker Compose
🪣 Docker Registry
🐳🐳🐳Docker Swarm

Definitions Below 👇
🏠Docker (Active) Host

A computer with Docker installed and the daemon running.

It can process Docker and non-Docker workloads.
⚙️Docker Engine

A Client-Server application. It has 3 components:

- "daemon process": A server that is a type of long-running program.

- "Rest API": to specify interfaces that programs can use to talk and interact with the daemon.

- "CLI": A command-line interface client
Read 10 tweets
31 Dec 20
I thought social media were a waste of time.

❌I was wrong.

🧵This will be my last thread of 2020.

It's about me and this year on social media.

✅If you think you are not a "social media type" but you would like to start getting to know yourself, this thread is for you.
👋Hi, for all the people who don't know me, I am Francesco, from Rome, Italy. I am 37 years old and I've worked as a Software Engineer for the Copernicus Project for European Space Agency.

👨‍💻Exactly one year ago, I was just coding by myself, alone, studying, and exercising daily
📱At the beginning of this year, I've started using Twitter a little more, because I wanted to promote an Android App I did.

⚗️It's a Simple periodic Table, that has nothing to do with programming. An idea I had had since Android Came out.

But it ended in a different way...👇
Read 25 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!