Docker on Windows (উইন্ডোজে ডকার)
উইন্ডোজ অপারেটিং সিস্টেমে ডকার চালানো এখন আগের চেয়ে অনেক বেশি সহজ এবং শক্তিশালী। বিশেষ করে মাইক্রোসফটের WSL2 (Windows Subsystem for Linux) আসার পর ডকারের পারফরম্যান্স লিনাক্সের মতোই পাওয়া সম্ভব।
১. উইন্ডোজ বনাম লিনাক্স কন্টেইনার
উইন্ডোজে ডকার ডেস্কটপ দুই ধরণের কন্টেইনার সাপোর্ট করে:
- Linux Containers: অধিকাংশ কন্টেইনার (যেমন: Nginx, Python) লিনাক্স ভিত্তিক। এগুলো উইন্ডোজে একটি ভার্চুয়াল মেশিনের মাধ্যমে চলে।
- Windows Containers: এগুলো শুধুমাত্র উইন্ডোজ সার্ভারের অ্যাপ চালানোর জন্য ব্যবহৃত হয়। ডকার ডেস্কটপে একসময় শুধুমাত্র একটিই (Linux বা Windows) একটিভ রাখা যায়।
২. WSL2 ব্যাকএন্ড (WSL2 Backend)
ডকার ডেস্কটপ এখন ডিফল্টভাবে WSL2 ব্যবহার করে। এটি হাইপার-ভি (Hyper-V) ভার্চুয়াল মেশিনের চেয়ে অনেক বেশি দ্রুত।
WSL2 ব্যবহারের সুবিধা:
- দ্রুত স্টার্টআপ টাইম।
- কম মেমোরি খরচ।
- লিনাক্সের সাথে সরাসরি ইন্টিগ্রেশন।
৩. Hyper-V vs WSL2
| ফিচার | Hyper-V (Legacy) | WSL2 (Modern) |
|---|---|---|
| Performance | ধীরগতি | অনেক দ্রুত |
| Resource Usage | স্ট্যাটিক মেমোরি খরচ | ডাইনামিক (প্রয়োজন অনুযায়ী) |
| Interoperability | কম | সরাসরি লিনাক্স টার্মিনাল এক্সেস |
৪. ফাইল সিস্টেম পারফরম্যান্স (File System)
উইন্ডোজে ডকার ব্যবহার করার সময় ফাইল মাউন্টিং একটি বড় ইস্যু হতে পারে। পারফরম্যান্স ভালো পাওয়ার জন্য:
- Best Practice: আপনার প্রজেক্ট কোড উইন্ডোজের সি ড্রাইভ (
C:\Users\...) থেকে না চালিয়ে সরাসরি WSL ফাইলসিস্টেমের ভেতর (\\wsl$\Ubuntu\home\...) রাখুন। - Avoid: উইন্ডোজের ফাইল লিনাক্স কন্টেইনারে মাউন্ট করলে তা আইও (I/O) অপারেশনকে অনেক ধীর করে দেয়।
৫. পাথ ট্রান্সলেশন (Path Translation)
উইন্ডোজ এবং লিনাক্সের পাথ লেখার ধরণ আলাদা। ডকার সিএলআই (CLI) স্বয়ংক্রিয়ভাবে উইন্ডোজ পাথকে (C:\my-project) লিনাক্স ফরম্যাটে (/c/my-project) কনভার্ট করার চেষ্টা করে। তবে কিছু ক্ষেত্রে ডাবল স্ল্যাশ (//) ব্যবহার করার প্রয়োজন হতে পারে।
৬. টিপস এবং ট্রিক্স
- WSL Configuration: আপনার মেমোরি ব্যবহার কন্ট্রোল করতে
.wslconfigফাইল ব্যবহার করুন। - Docker Desktop Dashboard: গ্রাফিক্যাল ইন্টারফেসের মাধ্যমে কন্টেইনার এবং ইমেজ ম্যানেজ করা সহজ হয়।
সারাংশ
উইন্ডোজে প্রফেশনাল ডেভেলপমেন্টের জন্য WSL2 ব্যাকএন্ড ব্যবহার করা অপরিহার্য। ফাইল যদি সঠিক জায়গায় রাখা হয়, তবে উইন্ডোজ এবং লিনাক্সের পারফরম্যান্সে খুব একটা পার্থক্য থাকে না।