ডকার
৮টি module — "আমার মেশিনে তো চলছিল" থেকে শুরু করে registry-তে নিজের image পর্যন্ত। image ও container, Postgres ও Mongo চালানো, port mapping, network, Docker Compose, Dockerfile লেখা, আর Docker Hub-এ push — প্রতিটা কমান্ড হাতে চালিয়ে।
কোন মডিউলে আছে মনে নেই? টপিকের নাম লিখলেই মডিউল দেখাবে।
Docker কেন দরকার, আর জিনিসটা আসলে কী
"আমার মেশিনে তো চলছিল" — এই এক বাক্য থেকেই Docker-এর জন্ম। সমস্যাটা কী, Docker কীভাবে কাজ করে, virtual machine-এর সাথে পার্থক্য কোথায়, আর install করে যাচাই করা।
Image, Container আর Volume — তিনটে শব্দ পরিষ্কার করে নাও
image কী, container কী, দুটো কীভাবে আলাদা, layer জিনিসটা কী, Docker Hub থেকে pull করা, tag কেন গুরুত্বপূর্ণ, আর volume কেন দরকার হয়।
প্রথম container চালাও — PostgreSQL দিয়ে
docker run, environment variable দিয়ে config, foreground আর detached-এর পার্থক্য, container-এর নাম দেওয়া, ps ও ps -a, stop আর start, একসাথে দুই version, আর পরিষ্কার করা।
Port mapping ও logs — MongoDB দিয়ে
container চলছে কিন্তু ধরা যাচ্ছে না — কেন। -p দিয়ে port খোলা, একই মেশিনে দুটো একই database, port সংঘাত, docker logs দিয়ে ভেতরে দেখা, আর docker exec দিয়ে ভেতরে ঢোকা।
দুই container-কে কথা বলানো — network
default bridge-এ নাম কাজ করে না কেন, নিজের network বানানো, mongo ও mongo-express জুড়ে দেওয়া, container-এর নামই যেভাবে ঠিকানা হয়ে যায়, আর সবচেয়ে সাধারণ দুটো ভুল।
Docker Compose — পুরো stack একটা ফাইলে
চারটে লম্বা কমান্ডের বদলে একটা ফাইল। YAML-এর গঠন, compose up ও down, Compose নিজে কী কী বানায়, named volume দিয়ে ডেটা টিকিয়ে রাখা, আর down বনাম down -v।
নিজের অ্যাপের image বানাও — Dockerfile
এতক্ষণ অন্যের বানানো image চালিয়েছি। এবার নিজের। FROM, WORKDIR, COPY, RUN, EXPOSE, CMD — ছয়টা নির্দেশ, docker build, আর layer cache কীভাবে build দ্রুত করে।
Docker Hub-এ পাঠাও — আর দ্বিতীয় প্রজেক্ট
image-এর নাম কীভাবে হতে হয়, docker login, tag, push, অন্য মেশিনে pull করে চালানো, একটা Node অ্যাপের Dockerfile, আর stop, kill, rm, rmi দিয়ে গুছিয়ে রাখা।