উবুন্টুতে ডকার ব্যবহার করার পদ্ধতি: ইনস্টলেশন, ইমেজ, ডকারফাইল এবং অপ্টিমাইজেশন সম্পূর্ণ গাইড

.

目次

১. পরিচিতি

ডকার কী?

ডকার একটি প্ল্যাটফর্ম যা কন্টেইনার-ভিত্তিক ভার্চুয়ালাইজেশন প্রযুক্তি ব্যবহার করে অ্যাপ্লিকেশনগুলোকে দক্ষভাবে ডেভেলপ, ডিস্ট্রিবিউট এবং চালায়। প্রচলিত ভার্চুয়াল মেশিন (VM) এর তুলনায়, কন্টেইনারগুলো হোস্ট OS কার্নেল শেয়ার করে, ফলে দ্রুত স্টার্টআপ এবং কম রিসোর্স ব্যবহার সম্ভব হয়।

উবুন্টুতে ডকার ব্যবহারের সুবিধা

উবুন্টু হল লিনাক্স ডিস্ট্রিবিউশনগুলোর মধ্যে একটি, যার ডকারের সঙ্গে শক্তিশালী সামঞ্জস্যতা রয়েছে। প্রধান কারণগুলো হল:

  • অফিসিয়াল সাপোর্ট : ডকার অফিসিয়ালি উবুন্টুকে সমর্থন করে, ফলে অফিসিয়াল রিপোজিটরি থেকে সহজে ইনস্টল করা যায়।
  • স্টেবল প্যাকেজ ম্যানেজমেন্ট : উবুন্টুর APT প্যাকেজ ম্যানেজার সংস্করণ ব্যবস্থাপনাকে সরল করে।
  • বিস্তৃত কমিউনিটি সাপোর্ট : উবুন্টুর একটি বড় গ্লোবাল ইউজার বেস রয়েছে, যা সমস্যার সমাধানকে সহজ করে।

এই প্রবন্ধে আপনি কী শিখবেন

এই গাইডে নিম্নলিখিত বিষয়গুলো ধাপে ধাপে ব্যাখ্যা করা হয়েছে:

  1. উবুন্টুতে ডকার কীভাবে ইনস্টল করবেন
  2. ডকার ইমেজের মৌলিক অপারেশন
  3. Dockerfile ব্যবহার করে কাস্টম ইমেজ তৈরি করা
  4. উবুন্টু কন্টেইনারে জাপানি লোকেল সেট করা
  5. ডকার ইমেজ অপ্টিমাইজ ও মিনিমাইজ করা
  6. উবুন্টু কন্টেইনারের ভিতরে অ্যাপ্লিকেশন ডেভেলপ করা
  7. সাধারণ ত্রুটি ও ট্রাবলশুটিং

বিষয়বস্তুটি নবীন ও উন্নত উভয় ব্যবহারকারীর জন্যই উপকারী, তাই যেকোনো পর্যায়ে এটি রেফারেন্স করতে পারেন।

২. উবুন্টুতে ডকার ইনস্টল করা

অফিসিয়াল রিপোজিটরি ব্যবহার করে ডকার ইনস্টল করা

উবুন্টুতে আপনি অফিসিয়াল রিপোজিটরি ব্যবহার করে সহজে ডকার ইনস্টল করতে পারেন। নিচের ধাপগুলো অনুসরণ করে আপনার পরিবেশ সেট আপ করুন।

১. বিদ্যমান ডকার প্যাকেজগুলো সরিয়ে নিন

উবুন্টুতে docker.io নামের একটি প্যাকেজ থাকতে পারে, যা পুরোনো সংস্করণ হতে পারে। সর্বশেষ ডকার ইনস্টল করার আগে এটি সরিয়ে নিন।

sudo apt remove docker docker-engine docker.io containerd runc

২. প্রয়োজনীয় প্যাকেজগুলো ইনস্টল করুন

ইনস্টলেশনের আগে নির্ভরশীল প্যাকেজগুলো ইনস্টল করুন।

sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

৩. অফিসিয়াল ডকার রিপোজিটরি যোগ করুন

ডকারের অফিসিয়াল GPG কী যোগ করুন এবং রিপোজিটরি কনফিগার করুন।

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

৪. ডকার ইনস্টল করুন

রিপোজিটরি যোগ করার পরে ডকার ইনস্টল করুন।

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

৫. ইনস্টলেশন যাচাই করুন

ডকার সঠিকভাবে ইনস্টল হয়েছে কিনা যাচাই করতে ভার্সন তথ্য দেখুন।

docker --version

ইনস্টলেশনের পর প্রাথমিক সেটআপ

১. ডকার সার্ভিস শুরু ও সক্রিয় করুন

ডকার সার্ভিস শুরু করুন এবং বুটের সময় স্বয়ংক্রিয়ভাবে চালু হওয়ার জন্য সক্রিয় করুন।

sudo systemctl start docker
sudo systemctl enable docker

২. নন-রুট ইউজারকে ডকার চালানোর অনুমতি দিন

ডিফল্টভাবে শুধুমাত্র রুট ইউজার ডকার চালাতে পারে। সাধারণ ইউজারদের ডকার কমান্ড চালানোর অনুমতি দিন।

sudo usermod -aG docker $USER

পরিবর্তনগুলি প্রয়োগ করতে লগ আউট করে আবার লগ ইন করুন।

৩. ডকার অপারেশন পরীক্ষা করুন

সাধারণ ইউজার অ্যাকাউন্ট ব্যবহার করে hello-world কন্টেইনার চালান।

docker run hello-world

যদি আউটপুটে “Hello from Docker!” দেখা যায়, তবে ইনস্টলেশন সফল হয়েছে।

৩. ডকার ইমেজের মৌলিক অপারেশন

ডকার ইমেজ কী?

ডকার ইমেজ হল কন্টেইনার তৈরি করার জন্য একটি টেমপ্লেট। উবুন্টু-ভিত্তিক ডকার ইমেজ ব্যবহার করে আপনি দ্রুত উবুন্টু পরিবেশ চালু করতে পারেন।

ডকার হাব থেকে উবুন্টু ইমেজ টানুন

ডকার হাব বিভিন্ন অফিসিয়াল ডকার ইমেজ সরবরাহ করে। উবুন্টু ইমেজ ডাউনলোড করতে নিম্নলিখিত কমান্ড চালান:

docker pull ubuntu

কন্টেইনার শুরু ও বন্ধ করুন

ডাউনলোড করা উবুন্টু ইমেজ ব্যবহার করে কন্টেইনার শুরু করুন:

docker run -it ubuntu bash

এটি উবুন্টু কন্টেইনারের ভিতরে একটি শেল খুলে, যা আপনাকে এর মধ্যে কাজ করতে দেয়।

কন্টেইনার তালিকা

চলমান কন্টেইনারগুলি প্রদর্শন করুন:

docker ps

বন্ধ কন্টেইনারসহ সব কন্টেইনার প্রদর্শন করুন:

docker ps -a

কন্টেইনার বন্ধ ও মুছে ফেলা

একটি চলমান কন্টেইনার বন্ধ করুন:

docker stop [container ID or name]

অপ্রয়োজনীয় কন্টেইনার মুছে ফেলুন:

docker rm [container ID or name]

ডকার ইমেজ পরিচালনা

ডাউনলোড করা ডকার ইমেজগুলির তালিকা:

docker images

একটি ইমেজ মুছে ফেলুন:

docker rmi [image ID]

৪. ডকারফাইল দিয়ে কাস্টম ইমেজ তৈরি করা

ডকারফাইল কী?

ডকারফাইল হল একটি কনফিগারেশন ফাইল যা ডকার ইমেজ তৈরি করতে ব্যবহৃত হয়। ডকারফাইলে লেখা নির্দেশনাগুলির ভিত্তিতে আপনি কাস্টমাইজড ডকার ইমেজ তৈরি করতে পারেন। এটি আপনাকে ডেভেলপমেন্ট পরিবেশগুলোকে একত্রিত করতে বা প্রয়োজনীয় প্যাকেজসমূহ অন্তর্ভুক্ত করা ইমেজ তৈরি করতে সহায়তা করে।

ডকারফাইলের মৌলিক সিনট্যাক্স

একটি ডকারফাইলে সাধারণত নিম্নলিখিত কমান্ডগুলো থাকে:

CommandDescription
FROMSpecifies the base image
RUNExecutes commands to build the image
COPYCopies files into the container
WORKDIRSets the working directory
CMDDefault command executed when the container starts
ENTRYPOINTDefines the entry point of the container

কাস্টম উবুন্টু-ভিত্তিক ইমেজ তৈরি করা

কাস্টম উবুন্টু-ভিত্তিক ডকার ইমেজ তৈরি করতে নিচের ধাপগুলো অনুসরণ করুন।

১. একটি ওয়ার্কিং ডিরেক্টরি তৈরি করুন

প্রথমে, একটি নতুন প্রকল্প ডিরেক্টরি তৈরি করুন এবং তাতে যান।

mkdir my-ubuntu-image
cd my-ubuntu-image

২. একটি ডকারফাইল তৈরি করুন

ডিরেক্টরির ভিতরে একটি Dockerfile তৈরি করুন এবং নিম্নলিখিত বিষয়বস্তু লিখুন:

# Base Ubuntu official image
FROM ubuntu:latest

# Maintainer information (optional)
LABEL maintainer="your-email@example.com"

# Update package list and install basic tools
RUN apt update && apt install -y curl vim git

# Set working directory
WORKDIR /workspace

# Default command when the container starts
CMD ["bash"]

৩. ডকার ইমেজ তৈরি করুন

আপনার ডকারফাইল থেকে একটি কাস্টম ইমেজ তৈরি করুন:

docker build -t my-ubuntu-image .

-t অপশনটি ইমেজকে একটি নাম প্রদান করে।

৪. ইমেজ যাচাই করুন

আপনার নতুন তৈরি ইমেজটি পরীক্ষা করুন:

docker images

৫. একটি কন্টেইনার চালান

কাস্টম ইমেজ থেকে একটি কন্টেইনার শুরু করুন:

docker run -it my-ubuntu-image

এই ইমেজে curl এবং vim এর মতো টুলস অন্তর্ভুক্ত রয়েছে।

৫. উবুন্টু কন্টেইনারে জাপানি পরিবেশ সেটআপ করা

ডিফল্ট উবুন্টু ইমেজ ইংরেজি পরিবেশ ব্যবহার করে। জাপানি ব্যবহার করতে অতিরিক্ত কনফিগারেশন প্রয়োজন।

জাপানি লোকেল সেট করা

উবুন্টু কন্টেইনারে জাপানি প্রদর্শন ও ইনপুট সক্রিয় করতে জাপানি লোকেল ইনস্টল করুন।

১. প্রয়োজনীয় প্যাকেজ ইনস্টল করুন

apt update
apt install -y language-pack-ja locales

২. লোকেল কনফিগার করুন

লোকেল তৈরি করুন এবং প্রয়োগ করুন:

locale-gen ja_JP.UTF-8
update-locale LANG=ja_JP.UTF-8

৩. সেটিংস প্রয়োগ করুন

export LANG=ja_JP.UTF-8

জাপানি ইনপুট সেটআপ করা

টার্মিনালে জাপানি অক্ষর ইনপুট করতে ibus-mozc ইনস্টল করুন:

apt install -y ibus-mozc

যদি GUI অ্যাপ্লিকেশন ব্যবহার করেন, নিম্নলিখিত পরিবেশ ভেরিয়েবলগুলো যোগ করুন:

export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus

GUI অ্যাপ্লিকেশন ব্যবহার করা

ডকার কন্টেইনারের ভিতরে GUI অ্যাপ্লিকেশন চালাতে হোস্ট মেশিনে একটি X সার্ভার ব্যবহার করুন।

X11 সক্রিয় করে কন্টেইনার চালান:

docker run -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix my-ubuntu-image

৬. ডকার ইমেজ অপ্টিমাইজ ও মিনিমাইজ করা

ডকার ইমেজগুলোকে অপ্টিমাইজ করা যায় যাতে কন্টেইনারের স্টার্টআপ গতি বাড়ে এবং স্টোরেজ ব্যবহার কমে। এখানে হালকা ইমেজ তৈরির জন্য কয়েকটি কৌশল দেওয়া হল।

হালকা উবুন্টু-ভিত্তিক ইমেজ কীভাবে তৈরি করবেন

ডিফল্ট ubuntu:latest ইমেজ তুলনামূলকভাবে বড়। ubuntu:minimal এর মতো হালকা বিকল্প ব্যবহার করলে কন্টেইনারের আকার কমাতে সাহায্য করে।

FROM ubuntu:minimal

আরেকটি বিকল্প হল Alpine Linux ব্যবহার করা, যা উবুন্টুর তুলনায় উল্লেখযোগ্যভাবে ছোট।

FROM alpine:latest
RUN apk add --no-cache bash curl

Alpine ব্যবহার করলে ইমেজের আকার কয়েকশো মেগাবাইট কমে যায়।

অপ্রয়োজনীয় ফাইল মুছে ইমেজের আকার কমানো

আপনি apt-get দ্বারা তৈরি অপ্রয়োজনীয় ক্যাশ ফাইল মুছে দিয়ে ইমেজের আকার কমাতে পারেন।

RUN apt update && apt install -y curl vim \
    && apt clean \
    && rm -rf /var/lib/apt/lists/*

বিশেষভাবে, rm -rf /var/lib/apt/lists/* কমান্ডটি প্যাকেজ তালিকা এবং অপ্রয়োজনীয় ডেটা মুছে দেয়।

মাল্টি-স্টেজ বিল্ড ব্যবহার করা

মাল্টি-স্টেজ বিল্ড আপনাকে শুধুমাত্র বিল্ড প্রক্রিয়ার সময় টুল ব্যবহার করতে দেয়, একই সঙ্গে চূড়ান্ত ইমেজকে হালকা রাখে।

FROM ubuntu as builder
RUN apt update && apt install -y gcc

FROM ubuntu:minimal
COPY --from=builder /usr/bin/gcc /usr/bin/gcc

এভাবে, আপনি চূড়ান্ত ইমেজে ডেভেলপমেন্ট টুল অন্তর্ভুক্ত করা থেকে বিরত থাকেন, যার ফলে অনেক ছোট ফু্টপ্রিন্ট পাওয়া যায়।

৭. ব্যবহারিক উদাহরণ: উবুন্টু কন্টেইনারে অ্যাপ্লিকেশন ডেভেলপমেন্ট

এই বিভাগে উবুন্টু কন্টেইনারের ভিতরে ডেভেলপমেন্ট পরিবেশ কীভাবে সেটআপ করা যায় তা পরিচয় করিয়ে দেওয়া হয়েছে।

পাইথন ডেভেলপমেন্ট পরিবেশ সেটআপ করা

উবুন্টু কন্টেইনারে পাইথন ডেভেলপমেন্ট পরিবেশ সেটআপ করার জন্য নিম্নলিখিত Dockerfile তৈরি করুন:

FROM ubuntu:latest
RUN apt update && apt install -y python3 python3-pip
CMD ["python3"]

ইমেজটি বিল্ড করুন এবং কন্টেইনারটি চালান:

docker build -t python-dev .
docker run -it python-dev

এই পরিবেশে আপনি স্ক্রিপ্ট ডেভেলপমেন্ট ও টেস্টিংয়ের জন্য python3 কমান্ড ব্যবহার করতে পারবেন।

Node.js ডেভেলপমেন্ট পরিবেশ সেটআপ করা

Node.js ডেভেলপমেন্ট পরিবেশ সেটআপ করতে, নিম্নলিখিত Dockerfile ব্যবহার করুন:

FROM ubuntu:latest
RUN apt update && apt install -y nodejs npm
CMD ["node"]

কন্টেইনারটি বিল্ড ও চালান:

docker build -t node-dev .
docker run -it node-dev

এই পরিবেশে node কমান্ডের মাধ্যমে জাভাস্ক্রিপ্ট এক্সিকিউশন এবং অ্যাপ্লিকেশন ডেভেলপমেন্ট সম্ভব হয়।

৮. প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী ও সমস্যার সমাধান

Docker ব্যবহার করার সময় বিভিন্ন সমস্যার সম্মুখীন হতে পারেন। নিচে সাধারণ প্রশ্ন এবং তাদের সমাধান দেওয়া হল।

Docker এবং ভার্চুয়াল মেশিনের পার্থক্য

  • Docker : হোস্ট OS কার্নেল শেয়ার করে, ফলে এটি হালকা এবং কন্টেইনার দ্রুত শুরু হয়।
  • Virtual Machines (VMs) : প্রতিটি VM তার নিজস্ব OS নিয়ে আসে, ফলে রিসোর্স ব্যবহার বেশি এবং স্টার্টআপ ধীর হয়।

Docker রিসোর্স অপ্টিমাইজেশনে উৎকৃষ্ট এবং ডেভেলপমেন্ট পরিবেশ ও স্বয়ংক্রিয় ডিপ্লয়মেন্টের জন্য উপযুক্ত।

উবুন্টু কন্টেইনারে ডেটা সংরক্ষণ

কন্টেইনার বন্ধ হয়ে গেলেও ডেটা সংরক্ষণ করতে, ভলিউম মাউন্ট ব্যবহার করুন:

docker run -v my_data:/data ubuntu

কন্টেইনার মুছে ফেললেও, my_data ভলিউমে সংরক্ষিত ডেটা পুনরায় ব্যবহার করা যায়।

সাধারণ ত্রুটি এবং সমাধান

১. permission denied ত্রুটি

Docker চালানোর সময় যদি permission denied দেখেন, তবে আপনার ব্যবহারকারী docker গ্রুপের সদস্য নাও হতে পারেন।

ব্যবহারকারীকে Docker গ্রুপে যোগ করুন:

sudo usermod -aG docker $USER

পরিবর্তন কার্যকর করতে লগ আউট করে পুনরায় লগ ইন করুন।

২. image not found ত্রুটি

যদি কোনো ইমেজ Docker Hub থেকে মুছে ফেলা হয়ে থাকে, তবে পুল করার সময় নতুন ট্যাগ নির্দিষ্ট করুন:

docker pull ubuntu:22.04

স্পষ্টভাবে ভার্সন নির্দিষ্ট করলে সঠিক ইমেজটি পাওয়া নিশ্চিত হয়।