DockerBeginner
Docker Containers
Container lifecycle, run/start/stop/exec/log/rm, port mapping ও flag-গুলো — বাংলায়।
14টি অংশবাংলা ভাষায়
Container হলো image-এর চলমান instance। image যেমন blueprint, container তেমন সেই blueprint থেকে বানানো actual ঘর — যেখানে অ্যাপ নিজস্ব environment-এ ছুটছে।
Container lifecycle
State machinetext
text
Created → Running → Paused
│ │
│ └→ Exited (stopped)
└→ Exited ──→ start → Runningএকটি container docker start দিয়ে stop-এর পরও আবার চালানো যায়; docker rm দিলেই তবে মুছে যায়।
প্রয়োজনীয় কমান্ড
Container basicsbash
bash
docker run --name web -d -p 8080:80 nginx # অনেক flag-সহ run
docker ps # চলমান list
docker ps -a # সব list
docker stop web # graceful stop
docker start web # আবার চালানো
docker restart web # restart
docker exec -it web bash # ভেতরে শেলসহ ঢোঁকা
docker logs web # logs দেখা
docker rm web # মুছে ফেলাPort mapping (-p)
Container-এর নিজস্ব network-এ port থাকে (যেমন nginx-এর 80)। বাইরে থেকে access পেতে host-এর port-এর সাথে map করতে হয়:
Port publishbash
bash
# host:container
docker run -d -p 8080:80 nginx
# এখন http://localhost:8080 -এ nginx দেখা যাবেDetached ও interactiv mode
| Flag | মানে |
|---|---|
-d | background-এ চালায় (detached) |
-it | interactive terminal (bash-এ ঢোঁকা) |
-p 8080:80 | port map |
-e K=V | environment variable |
--name web | নাম দেওয়া |
--rm | container বন্ধ হলে auto-মুছে |
exec দিয়ে ভেতরে দেখা
Debug containerbash
bash
# চলমান container-এর ভেতরে শেল
docker exec -it web sh
# ভেতর থেকে কমান্ড (যেমন প্রসেস দেখা)
docker exec web ps aux
# environment variable দেখা
docker exec web envContainer অস্থায়ী
Container-এর ভেতরের file system মূলত ephemeral — container মুছে গেলে ডেটা হারায়। ডেটা ধরে রাখতে পরে দেখব volumes।
শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।