এই Tutorial-এ আমরা শিখব কীভাবে macOS, Windows এবং Linux-এ Docker install করতে হয়, installation ঠিকভাবে হয়েছে কি না verify করতে হয় এবং একটি real container run করে Docker-এর functionality পরীক্ষা করতে হয়।
Docker install করার আগে একটি বিষয় বুঝে নেওয়া দরকার। সব Operating System-এ Docker installation process এক নয়।
সাধারণত আমরা দুটি installation approach ব্যবহার করি:
macOS / Windows
↓
Docker Desktop
↓
Docker Engine
↓
Containers
Linux Server
↓
Docker Engine
↓
containerd
↓
Containers
Docker Desktop কী?
Docker Desktop হলো একটি desktop application, যা মূলত macOS এবং Windows-এ Docker ব্যবহার সহজ করে। এর মধ্যে Docker Engine, Docker CLI, Docker Compose এবং একটি Graphical User Interface (GUI) থাকে।
Docker Engine কী?
Docker Engine হলো Docker-এর মূল container management technology। এটি container create, start, stop এবং manage করতে সাহায্য করে। Linux server এবং production environment-এ সাধারণত Docker Engine সরাসরি install করা হয়।
Docker Compose কী?
Docker Compose ব্যবহার করে আমরা একটি YAML configuration file-এর মাধ্যমে এক বা একাধিক container manage করতে পারি।
উদাহরণস্বরূপ, একটি application-এর Backend, Database এবং Redis Cache একসঙ্গে চালানোর জন্য Docker Compose ব্যবহার করা যায়।
1. macOS-এ Docker Installation
macOS-এ Docker install করার সবচেয়ে সহজ উপায় হলো Docker Desktop ব্যবহার করা।
Step 1: Mac-এর Processor Architecture Check করা
প্রথমে Terminal open করে নিচের command run করো:
uname -m
Possible output:
arm64 → Apple Silicon (M1, M2, M3, M4 ইত্যাদি)
x86_64 → Intel Mac
কেন এটি check করছি?
কারণ Docker Desktop-এর Apple Silicon এবং Intel Mac-এর জন্য আলাদা installer রয়েছে।
সঠিক installer download না করলে installation বা compatibility problem হতে পারে।
Step 2: Docker Desktop Download করা
Docker-এর official website থেকে installer download করো:
https://docs.docker.com/desktop/setup/install/mac-install/
Processor অনুযায়ী installer select করতে হবে।
Apple Silicon Mac → Apple Silicon Version
Intel Mac → Intel Version
Step 3: Docker Desktop Install করা
Download করা .dmg file open করো।
এরপর:
Docker.dmg
↓
Docker.app
↓
Applications Folder
↓
Open Docker Desktop
প্রথমবার Docker Desktop চালু করার সময় macOS কিছু system permission চাইতে পারে।
প্রয়োজনীয় permission approve করতে হবে।
Docker Desktop পুরোপুরি start হলে menu bar-এ Docker-এর icon দেখতে পাবে।
Step 4: Docker Installation Verify করা
Terminal open করে নিচের commands run করো:
docker --version
docker compose version
docker run hello-world
Installation ঠিকভাবে হয়ে থাকলে output-এ দেখতে পাবে:
Hello from Docker!
এখানে আসলে কী হলো?
docker run hello-world command execute করলে Docker প্রথমে local system-এ hello-world image আছে কি না check করে।
Image না থাকলে Docker Hub থেকে download করে।
তারপর সেই image ব্যবহার করে একটি container create এবং run করে।
Container successfully execute হলে আমরা Hello from Docker! message দেখতে পাই।
অর্থাৎ Docker Engine ঠিকভাবে কাজ করছে।
Step 5: একটি Real Nginx Container Run করা
এবার আমরা একটি actual web server container run করব।
docker run -d --name test-nginx -p 8080:80 nginx
এই command-এর প্রতিটি অংশ বুঝে নিই:
| Parameter | কাজ |
|---|---|
docker run | নতুন container create এবং run করে |
-d | Container background-এ run করে |
--name test-nginx | Container-এর একটি name দেয় |
-p 8080:80 | Host-এর port 8080 কে container-এর port 80-এর সঙ্গে connect করে |
nginx | Nginx Docker image ব্যবহার করে |
এখন Browser open করে নিচের address-এ যাও:
http://localhost:8080
সবকিছু ঠিক থাকলে Welcome to nginx! page দেখতে পাবে।
এর অর্থ হলো Docker container-এর ভেতরে একটি real web server চলছে।
Container Stop এবং Remove করা
Test শেষ হলে:
docker stop test-nginx
docker rm test-nginx
প্রথম command container stop করবে এবং দ্বিতীয় command container remove করবে।
এভাবেই macOS-এ Docker installation এবং basic container execution verify করা হলো।
2. Windows-এ Docker Installation
Windows-এ Docker installation কিছুটা আলাদা।
কারণ Docker-এর Linux containers run করার জন্য Windows-এ সাধারণত WSL 2 ব্যবহার করা হয়।
WSL-এর পূর্ণরূপ: Windows Subsystem for Linux।
WSL-এর মাধ্যমে Windows-এর মধ্যে একটি Linux environment run করা যায়।
আমাদের installation architecture হবে:
Windows 10 / Windows 11
↓
WSL 2
↓
Docker Desktop
↓
Docker Engine
↓
Linux Containers
Step 1: Windows Requirements Check করা
Docker Desktop install করার আগে নিশ্চিত হতে হবে:
- Windows 10 বা Windows 11-এর supported version ব্যবহার করা হচ্ছে।
- System-এ virtualization support রয়েছে এবং সেটি enabled।
- WSL 2 install করার সুবিধা রয়েছে।
- Docker Desktop-এর minimum hardware requirements পূরণ হচ্ছে।
Official requirements:
https://docs.docker.com/desktop/setup/install/windows-install/
Step 2: WSL 2 Install করা
Windows-এর Start Menu থেকে PowerShell search করো।
তারপর Run as Administrator select করো।
নিচের command execute করো:
wsl --install
এই command WSL-এর প্রয়োজনীয় components install করবে এবং সাধারণত একটি default Linux distribution install করবে।
Windows restart করতে বললে restart করতে হবে।
WSL Update করা
wsl --update
WSL Status Check করা
wsl --status
Installed Linux Distributions Check করা
wsl -l -v
Example output:
NAME STATE VERSION
Ubuntu Running 2
এখানে VERSION 2 মানে Ubuntu WSL 2 ব্যবহার করছে।
যদি কোনো distribution WSL 1 ব্যবহার করে, তাহলে প্রয়োজন অনুযায়ী WSL 2-তে convert করতে হবে।
Example:
wsl --set-version Ubuntu 2
Step 3: Docker Desktop Install করা
Official Docker website থেকে Windows installer download করো:
https://docs.docker.com/desktop/setup/install/windows-install/
Installer run করার সময় WSL 2 backend select করার option থাকলে সেটি enable করো।
Installation workflow:
Download Docker Desktop
↓
Run Installer
↓
Enable WSL 2 Backend
↓
Complete Installation
↓
Launch Docker Desktop
Docker Desktop start করার পর নিশ্চিত হও Linux containers mode enabled আছে।
Step 4: WSL Integration Enable করা
Docker Desktop open করো।
তারপর:
Docker Desktop
↓
Settings
↓
Resources
↓
WSL Integration
↓
Enable Ubuntu / Debian
↓
Apply & Restart
WSL Integration কেন গুরুত্বপূর্ণ?
ধরো তুমি Windows-এর Ubuntu terminal থেকে Docker command run করতে চাও।
WSL Integration enabled থাকলে Ubuntu terminal সরাসরি Docker Desktop-এর Docker Engine ব্যবহার করতে পারবে।
এতে Windows এবং Linux development environment-এর মধ্যে integration সহজ হয়।
Step 5: PowerShell থেকে Docker Verify করা
PowerShell open করে:
docker --version
docker compose version
docker run hello-world
Expected output:
Hello from Docker!
Step 6: WSL Ubuntu থেকে Docker Verify করা
এবার Ubuntu terminal open করো।
docker --version
docker compose version
docker run hello-world
এখানেও Hello from Docker! দেখতে পেলে বুঝবে WSL Integration ঠিকভাবে কাজ করছে।
Important: Docker Desktop ব্যবহার করলে সাধারণত WSL Ubuntu-এর মধ্যে আলাদা করে Docker Engine install করার দরকার নেই।
Step 7: Real Nginx Container Run করা
PowerShell অথবা WSL Ubuntu terminal থেকে:
docker run -d --name test-nginx -p 8080:80 nginx
Browser-এ যাও:
http://localhost:8080
Nginx welcome page দেখতে পেলে container successfully run করছে।
Cleanup
docker stop test-nginx
docker rm test-nginx
এখন Windows-এ Docker Desktop, Docker Engine, WSL Integration এবং Container Execution — সবকিছু test করা হয়ে গেল।
3. Linux Docker Installation — Ubuntu / Debian
Linux Server-এ Docker install করার জন্য সাধারণত Docker Engine ব্যবহার করা হয়।
বিশেষ করে Server, Virtual Machine (VM), Cloud Infrastructure এবং On-Premises Environment-এ এটি প্রচলিত।
এখানে আমরা Docker Desktop-এর পরিবর্তে সরাসরি Docker Engine install করব।
Step 1: পুরোনো বা Conflicting Docker Packages Remove করা
Docker-এর official packages install করার আগে conflicting packages remove করতে হতে পারে।
sudo apt remove \
docker.io \
docker-doc \
docker-compose \
docker-compose-v2 \
podman-docker \
containerd \
runc
কেন remove করছি?
Ubuntu বা Debian-এর default repository-তে Docker-related কিছু packages থাকতে পারে।
এগুলো Docker-এর official repository থেকে install করা packages-এর সঙ্গে conflict করতে পারে।
তবে existing production server-এ এই command execute করার আগে নিশ্চিত হতে হবে কোনো running application পুরোনো Docker বা containerd installation-এর ওপর depend করছে কি না।
Step 2: Required Dependencies Install করা
প্রথমে package list update করো:
sudo apt update
তারপর:
sudo apt install -y ca-certificates curl
এখানে:
| Package | কাজ |
|---|---|
ca-certificates | HTTPS connection-এর certificate validation |
curl | Internet থেকে files download করা |
Step 3: Docker-এর Official GPG Key Add করা
Docker-এর package repository verify করার জন্য official GPG key add করতে হবে।
Ubuntu-এর জন্য:
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL \
https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
Debian-এর জন্য:
একই process follow করো, তবে GPG key URL হবে:
https://download.docker.com/linux/debian/gpg
GPG Key কেন ব্যবহার করি?
GPG key-এর মাধ্যমে package manager verify করতে পারে যে Docker packages trusted source থেকে এসেছে এবং repository metadata-এর signature valid।
Step 4: Docker Official Repository Add করা
এবার Operating System-কে জানাতে হবে Docker packages কোথায় পাওয়া যাবে।
Ubuntu Repository
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Debian Repository
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
এখন Docker-এর official repository configure হয়ে গেল।
Step 5: Docker Engine Install করা
প্রথমে package list update করো:
sudo apt update
তারপর Docker Engine এবং related tools install করো:
sudo apt install -y \
docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin
এই command কয়েকটি গুরুত্বপূর্ণ Docker components install করবে।
| Package | Description |
|---|---|
docker-ce | Docker Community Edition Engine |
docker-ce-cli | Docker Command Line Interface |
containerd.io | Container Runtime |
docker-buildx-plugin | Advanced Docker Image Building |
docker-compose-plugin | Multi-Container Application Management |
Step 6: Docker Service Start করা
Docker install হওয়ার পর service start করতে হবে।
sudo systemctl enable --now docker
Service status check করো:
sudo systemctl status docker
Expected result:
Active: active (running)
Command-এর meaning:
enable Docker service-কে system boot-এর সময় automatically start হওয়ার জন্য configure করে।
--now service-কে immediately start করে।
Step 7: Docker Installation Verify করা
এখন run করো:
sudo docker --version
sudo docker compose version
sudo docker run hello-world
Expected:
Hello from Docker!
এটি confirm করে Docker container successfully execute করতে পারছে।
Step 8: Sudo ছাড়া Docker Use করা (Optional)
Linux-এ Docker command execute করার জন্য সাধারণত root privileges অথবা Docker socket-এর permission প্রয়োজন হয়।
Development environment-এ যদি বারবার sudo ব্যবহার করতে না চাও, তাহলে user-কে Docker group-এ add করতে পারো।
sudo usermod -aG docker "$USER"
তারপর:
newgrp docker
Test:
docker run hello-world
Security Warning:
Docker group-এর user কার্যত root-level privileges পেতে পারে। তাই production server-এ এই permission শুধুমাত্র trusted administrators-কে দেওয়া উচিত।
আরও restricted environment-এর জন্য Rootless Docker বিবেচনা করা যায়।
Step 9: Real Nginx Container Test করা
এবার একটি Nginx web server চালাই:
docker run -d --name test-nginx -p 8080:80 nginx
Container status:
docker ps
HTTP request পাঠাও:
curl http://localhost:8080
Expected result হলো Nginx-এর HTML response।
এর মানে container-এর ভেতরের Nginx web server ঠিকভাবে কাজ করছে।
Container Cleanup
docker stop test-nginx
docker rm test-nginx
Note: Remote Linux server হলে localhost বলতে সেই server-কে বোঝায়। নিজের computer-এর browser থেকে access করতে হলে Server IP, Network Route এবং Firewall configuration বিবেচনা করতে হবে।
4. Fedora Linux-এ Docker Installation
Fedora Linux-এ package management-এর জন্য dnf ব্যবহার করা হয়।
তাই Ubuntu-এর apt command এখানে কাজ করবে না।
Step 1: পুরোনো Docker Packages Remove করা
sudo dnf remove \
docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
Step 2: DNF Plugins Install করা
sudo dnf -y install dnf-plugins-core
Step 3: Docker Repository Add করা
নতুন DNF5-based Fedora-তে:
sudo dnf config-manager addrepo \
--from-repofile \
https://download.docker.com/linux/fedora/docker-ce.repo
পুরোনো DNF4-based Fedora-তে:
sudo dnf config-manager --add-repo \
https://download.docker.com/linux/fedora/docker-ce.repo
Step 4: Docker Engine Install করা
sudo dnf install -y \
docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin
Step 5: Docker Service Start করা
sudo systemctl enable --now docker
Step 6: Docker Verify করা
sudo docker run hello-world
Expected:
Hello from Docker!
এখন Fedora-তে Docker-এর basic installation complete।
5. RHEL / CentOS / Rocky / AlmaLinux-এ Docker Installation
RHEL-based Linux distributions-এর installation process অনেকটাই Fedora-এর মতো।
তবে distribution অনুযায়ী correct Docker repository select করতে হবে।
Step 1: DNF Plugins Install করা
sudo dnf install -y dnf-plugins-core
Step 2: Docker Repository Add করা
CentOS
sudo dnf config-manager --add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
RHEL
sudo dnf config-manager --add-repo \
https://download.docker.com/linux/rhel/docker-ce.repo
DNF5-based system হলে config-manager addrepo --from-repofile syntax ব্যবহার করতে হতে পারে।
Rocky Linux এবং AlmaLinux: এই distributions-এ compatible Docker repository ব্যবহার করার আগে OS version এবং Docker package support verify করা জরুরি।
Step 3: Docker Engine Install করা
sudo dnf install -y \
docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin
Step 4: Docker Service Start করা
sudo systemctl enable --now docker
Step 5: Installation Verify করা
sudo docker run hello-world
Expected:
Hello from Docker!
এখন Docker Engine properly configured কি না basic level-এ confirm করা গেল।
6. Docker Post-Installation Verification
Docker install করার পর কিছু standard verification commands run করা উচিত।
এগুলো আমাদের নিশ্চিত করতে সাহায্য করে Docker CLI, Docker Engine এবং Docker Compose সঠিকভাবে কাজ করছে।
docker --version
docker compose version
docker info
docker run --rm hello-world
কোন Command কী Verify করে?
| Command | Verification |
|---|---|
docker --version | Docker CLI installed আছে কি না |
docker compose version | Docker Compose available কি না |
docker info | Docker Engine-এর সঙ্গে connection হচ্ছে কি না |
docker run --rm hello-world | Container execute করা যাচ্ছে কি না |
একটি গুরুত্বপূর্ণ বিষয়:
শুধুমাত্র docker --version successful হলেই Docker Engine running আছে বলা যায় না।
কারণ Docker CLI installed থাকতে পারে, কিন্তু Docker daemon বন্ধ থাকতে পারে।
তাই docker info এবং docker run hello-world দিয়ে verification করা জরুরি।
Real Web Container Verification
একটি Nginx container run করো:
docker run -d --name web-test -p 8080:80 nginx
Running containers দেখো:
docker ps
Browser-এ open করো:
http://localhost:8080
Nginx welcome page দেখতে পেলে container networking এবং HTTP service basic level-এ কাজ করছে।
Test শেষে:
docker stop web-test
docker rm web-test
7. Docker Compose দিয়ে Real Application Test
এখন পর্যন্ত আমরা docker run command ব্যবহার করে একটি করে container চালিয়েছি।
কিন্তু real-world applications সাধারণত একাধিক container নিয়ে তৈরি হয়।
উদাহরণস্বরূপ:
Web Application
|
+── Frontend Container
|
+── Backend API Container
|
+── PostgreSQL Container
|
+── Redis Container
এ ধরনের multi-container architecture manage করার জন্য Docker Compose ব্যবহার করা হয়।
আমরা এখানে একটি simple Nginx service দিয়ে Compose test করব।
Step 1: Project Directory Create করা
Terminal-এ:
mkdir docker-test
cd docker-test
Step 2: Compose Configuration File Create করা
Project directory-তে compose.yaml নামে একটি file তৈরি করো।
File-এর content:
services:
web:
image: nginx:latest
ports:
- "8080:80"
এই YAML file-এ আমরা কী define করেছি?
services: এখানে application-এর services define করা হয়।
web: আমাদের service-এর নাম।
image: Container create করার জন্য Nginx image ব্যবহার করা হবে।
ports: Host machine-এর port 8080 container-এর port 80-এর সঙ্গে connect হবে।
Step 3: Docker Compose দিয়ে Container Start করা
docker compose up -d
এই command execute করলে Docker Compose:
- Configuration file read করবে।
- Required Docker image local-এ আছে কি না check করবে।
- Image না থাকলে download করবে।
- Network এবং container create করবে।
- Container background-এ start করবে।
Step 4: Running Services Check করা
docker compose ps
এখন HTTP request পাঠাও:
curl http://localhost:8080
Windows PowerShell-এ চাইলে ব্যবহার করতে পারো:
curl.exe http://localhost:8080
Browser থেকেও verify করা যাবে:
http://localhost:8080
Step 5: Docker Compose Services Stop করা
docker compose down
এই command Compose project-এর containers এবং default network remove করবে।
আমরা কী শিখলাম?
Docker Compose ব্যবহার করে YAML configuration-এর মাধ্যমে container start, manage এবং stop করতে পারি।
পরবর্তীতে একই approach ব্যবহার করে Backend, PostgreSQL, Redis, Apache Kafka কিংবা AI/ML services deploy করা সম্ভব।
8. Docker, containerd, ctr, nerdctl এবং crictl — পার্থক্য কী?
Docker শেখার সময় একটি common confusion তৈরি হয়।
Docker Engine, containerd, runc, ctr, nerdctl, crictl এবং kubectl — এগুলোর মধ্যে সম্পর্ক কী?
সহজভাবে বোঝার জন্য নিচের architecture দেখো:
Docker CLI
|
v
Docker Engine (dockerd)
|
v
containerd
|
v
runc
|
v
Linux Containers
এখন একে একে বুঝি।
Docker CLI
Docker CLI হলো Docker-এর command-line interface।
যেমন:
docker ps
docker images
docker run nginx
এই commands দিয়ে আমরা Docker Engine-এর সঙ্গে communicate করি।
containerd
containerd হলো একটি container runtime, যা container lifecycle manage করার functionality provide করে।
Docker Engine internally containerd ব্যবহার করে।
তবে containerd সরাসরি ব্যবহার করা সম্ভব, Docker CLI ছাড়াও।
ctr — containerd-এর Native CLI
ctr হলো containerd-এর low-level command-line client।
Example:
sudo ctr containers list
এটি containerd-এর default namespace-এর containers দেখায়।
Kubernetes-এর containerd namespace inspect করতে:
sudo ctr -n k8s.io containers list
ctr সাধারণত debugging এবং containerd internals বোঝার জন্য ব্যবহার করা হয়।
nerdctl — Docker-এর মতো CLI for containerd
nerdctl একটি Docker-compatible CLI।
এটি directly containerd-এর সঙ্গে কাজ করে।
যারা Docker commands-এর সঙ্গে familiar, তাদের জন্য nerdctl ব্যবহার করা তুলনামূলক সহজ।
Example:
nerdctl ps
nerdctl images
nerdctl run nginx
তবে nerdctl ব্যবহার করার আগে এটিকে separately install এবং configure করতে হতে পারে।
crictl — Kubernetes Runtime Troubleshooting
crictl হলো Container Runtime Interface (CRI)-এর debugging tool।
Kubernetes node-এ container runtime troubleshoot করার জন্য এটি ব্যবহার করা হয়।
Example:
sudo crictl ps
sudo crictl images
sudo crictl pods
Kubernetes-এর containerd-backed node troubleshoot করার সময় এটি বিশেষভাবে useful।
kubectl — Kubernetes Management CLI
kubectl ব্যবহার করে Kubernetes API Server-এর মাধ্যমে cluster resources manage করা হয়।
Example:
kubectl get pods -A
kubectl get nodes
kubectl get deployments -A
কখন কোন Tool ব্যবহার করব?
| Tool | Primary Use Case |
|---|---|
docker | Docker containers এবং images manage করা |
ctr | Low-level containerd debugging |
nerdctl | Docker-like workflow directly on containerd |
crictl | Kubernetes container runtime troubleshooting |
kubectl | Kubernetes cluster এবং workloads manage করা |
মনে রাখবে: Docker install করলেই এই সব CLI automatically install হয়ে যায় না। প্রতিটি tool-এর আলাদা use case এবং installation requirements আছে।
9. Final Docker Validation — Complete Test
এখন আমরা একটি complete validation run করব।
এটি macOS, Windows এবং Linux — সব environment-এ ব্যবহার করা যাবে, যদি Docker Engine running থাকে এবং প্রয়োজনীয় permissions configure করা থাকে।
# Step 1: Docker Client এবং Server Check
docker version
# Step 2: Docker Compose Check
docker compose version
# Step 3: Hello World Container Run
docker run --rm hello-world
# Step 4: Alpine Linux Container Test
docker run --rm alpine uname -a
# Step 5: Nginx Web Server Start
docker run -d --name nginx-test -p 8080:80 nginx
# Step 6: Web Server HTTP Test
curl http://localhost:8080
# Step 7: Container Logs Check
docker logs nginx-test
# Step 8: Running Containers Check
docker ps
# Step 9: Container Stop
docker stop nginx-test
# Step 10: Container Remove
docker rm nginx-test
Expected Success Results
| Test | Expected Output |
|---|---|
| Docker Version | Client এবং Server details |
| Compose Version | Docker Compose v2 |
| Hello World | Hello from Docker! |
| Alpine Container | Linux Kernel information |
| Nginx Container | Container successfully started |
| HTTP Request | Nginx HTML response |
| Container Logs | Logs accessible |
| Docker PS | Running container দেখা যাচ্ছে |
| Cleanup | Container successfully removed |
সব tests সফল হলে বলা যায় Docker-এর installation, Engine connectivity, container execution, basic networking এবং Compose functionality কাজ করছে।
তবে মনে রাখতে হবে, Installation Validation এবং Production Readiness এক জিনিস নয়।
Production environment-এর জন্য আরও কিছু বিষয় configuration করতে হবে:
- Container Security এবং Image Scanning
- Resource Limits (CPU এবং Memory)
- Persistent Volumes এবং Storage
- Logging এবং Monitoring
- Network Security এবং Firewall
- Secrets Management
- Backup এবং Recovery
- Container Health Checks
- Image Version Pinning
10. Complete Docker Installation Summary
এখন পুরো installation process একবার সংক্ষেপে দেখি।
Operating System
|
+------------+------------+
| |
macOS / Windows Linux Server
| |
Docker Desktop Docker Engine
| |
+------------+------------+
|
Docker CLI
|
Docker Engine
|
containerd
|
runc
|
Containers
|
+--------+--------+
| | |
Nginx Backend Database
macOS ব্যবহার করলে
Docker Desktop download এবং install করতে হবে। তারপর docker run hello-world এবং Nginx container run করে verification করতে হবে।
Windows ব্যবহার করলে
WSL 2 setup করতে হবে, Docker Desktop install করতে হবে এবং WSL Integration enable করতে হবে। এরপর PowerShell ও Ubuntu terminal থেকে Docker commands test করা যাবে।
Linux Server ব্যবহার করলে
Docker-এর official repository configure করতে হবে, Docker Engine install করতে হবে এবং Docker service enable করতে হবে। তারপর container run করে installation verify করতে হবে।
Multiple Containers Run করতে চাইলে
Docker Compose ব্যবহার করতে হবে। এতে একটি YAML file-এর মাধ্যমে application-এর বিভিন্ন services একসঙ্গে manage করা যায়।
Direct containerd ব্যবহার করতে চাইলে
Low-level operations-এর জন্য ctr এবং Docker-like workflow-এর জন্য nerdctl ব্যবহার করা যায়।
Kubernetes Environment-এ কাজ করলে
Container Runtime troubleshooting-এর জন্য crictl এবং Kubernetes objects manage করার জন্য kubectl ব্যবহার করতে হবে।
Official Documentation & References
আরও বিস্তারিত জানার জন্য Docker এবং containerd-এর official documentation ব্যবহার করতে পারো।
| Topic | Documentation |
|---|---|
| Docker Engine | https://docs.docker.com/engine/install/ |
| Docker Desktop — macOS | https://docs.docker.com/desktop/setup/install/mac-install/ |
| Docker Desktop — Windows | https://docs.docker.com/desktop/setup/install/windows-install/ |
| Docker WSL 2 Integration | https://docs.docker.com/desktop/features/wsl/ |
| Docker Engine — Ubuntu | https://docs.docker.com/engine/install/ubuntu/ |
| Docker Engine — Debian | https://docs.docker.com/engine/install/debian/ |
| Docker Engine — Fedora | https://docs.docker.com/engine/install/fedora/ |
| Docker Engine — RHEL | https://docs.docker.com/engine/install/rhel/ |
| Docker Engine — CentOS | https://docs.docker.com/engine/install/centos/ |
| Docker Compose | https://docs.docker.com/compose/ |
| containerd | https://containerd.io/docs/ |
| nerdctl | https://github.com/containerd/nerdctl |
Final Takeaway
Docker installation শেখার মূল বিষয় শুধু software install করা নয়, বরং Docker-এর complete workflow বোঝা।
একজন Developer বা DevOps / AI Engineer হিসেবে তোমার জানা উচিত:
Docker কীভাবে install হয় → Docker Engine কীভাবে কাজ করে → Docker Image থেকে Container কীভাবে তৈরি হয় → Port Mapping কীভাবে কাজ করে → Docker Compose দিয়ে Multiple Services কীভাবে run করতে হয় → Container Runtime এবং Kubernetes-এর সম্পর্ক কী।
এই installation এবং verification process সম্পন্ন করার পর তুমি Docker ব্যবহার করে Web Application, Backend API, Database, Data Engineering Services এবং AI/ML Application containerize করার জন্য প্রস্তুত।
পরবর্তী ধাপে Dockerfile, Docker Images, Volumes, Networks, Docker Compose এবং Container Security বিস্তারিতভাবে শেখা যাবে।
