Docker Architecture
Docker Client, Engine, Daemon, Host, Registry, Image, Container এবং সম্পূর্ণ request flow — বাংলায়।
Docker একটি client-server architecture অনুসরণ করে। ব্যবহারকারী কমান্ড দেয় client-কে; client রিকোয়েস্ট পাঠায় daemon-এ; daemonই image build, container run সহ সব ভারী কাজ করে।
Docker Architecture — মূল উপাদান
Developer
↓ (docker build / docker run ...)
Docker CLI (Client)
↓ (REST API)
Docker Engine (Daemon + REST API)
↓
Image (pull/build)
↓
Container (run)Docker Client কী?
Docker Client হলো docker কমান্ড। আপনি যা-যা টার্মিনালে লিখেন — docker run, docker build, docker ps — সব electrify client থেকে daemon-এ REST API দিয়ে যায়। Client শুধু কমান্ড পাঠায়; কাজ করে daemon।
Docker Engine কী?
Docker Engine হলো সম্পূর্ণ Docker platform — এর ভেতরে Docker Daemon, REST API এবং CLI থাকে। ইঞ্জিনই container build, run ও manage করে। অর্থাৎ 'Docker' বলতে সাধারণত এই engine-ই বোঝায়।
Docker Daemon কী?
Docker Daemon (dockerd) হলো background service যা images, containers, networks, volumes-এর মতো সবকিছু পরিচালনা করে। এটি client-দের REST API-এর মাধ্যমে request গ্রহণ করে।
Docker Host কী?
Docker Host হলো সেই machine (laptop, server) যেখানে Docker Engine ইনস্টল আছে এবং container-গুলো চলে। Host OS-এর kernel container-গুলোর সাথে শেয়ার হয়।
Docker Registry কী?
Docker Registry হলো image-এর কেন্দ্রীয় repository। Docker Hub হলো default (public) registry; নিজস্ব private registry (GHCR, ECR)-ও ব্যবহার করা যায়। docker pull image ডাউনলোড ও docker push আপলোড করে।
Docker Image ও Docker Container
Image হলো একটি immutable template — container তৈরির 'recipe'। Container হলো সেই image-এর চলমান instance (process)। 객체: class ↔ object, ঠিক তেমন: image ↔ container।
সম্পূর্ণ Flow — ধাপে ধাপে
- Developer টার্মিনালে
docker buildবাdocker runলেখেন (Client) - Client REST API দিয়ে Request পাঠায় Engine-এ
- Daemon প্রয়োজনে Registry থেকে base image pull করে
- Daemon image তৈরি করে (build হলে) বা ধরে রাখে
- Daemon সেই image থেকে container তৈরি করে চালু করে
- Container নিজস্ব isolated environment-এ process চালায়
- Output/logs client-এ ফিরে আসে — Developer দেখতে পান
উপাদানের সারসংক্ষেপ
| উপাদান | ভূমিকা |
|---|---|
| Docker Client | docker কমান্ড — request পাঠায় |
| Docker Engine | সম্পূর্ণ platform (daemon + API + CLI) |
| Docker Daemon | Background service — core orchestration |
| Docker Host | যে machine-এ container চলে |
| Docker Registry | Image সংরক্ষণের repository |
| Docker Image | Only-read template |
| Docker Container | Image-এর চলমান instance |
Client এবং daemon একই machine-এ থাকা জরুরি না। আপনার laptop-এর docker CLI দিয়ে remote server-এর daemon-কে manage করতে পারেন — এভাবেই remote container management হয়।