উবুন্টুতে ডকার ইমেজ তৈরি ও পরিচালনার সম্পূর্ণ গাইড | ইনস্টলেশন অপ্টিমাইজেশন এবং ট্রাবলশুটিং

目次

১. পরিচিতি

ডকার কী?

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

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

উবুন্টু ডকারের সাথে অত্যন্ত সামঞ্জস্যপূর্ণ লিনাক্স ডিস্ট্রিবিউশনগুলির মধ্যে একটি। মূল উপকারিতাগুলি নিম্নরূপ:

  • অফিসিয়াল সাপোর্ট : ডকার অফিসিয়ালি উবুন্টুকে সাপোর্ট করে, এবং অফিসিয়াল রিপোজিটরির মাধ্যমে ইনস্টলেশন সহজ।
  • স্থিতিশীল প্যাকেজ ম্যানেজমেন্ট : উবুন্টুর এপিটি প্যাকেজ ম্যানেজার ডকারের ভার্সনগুলি পরিচালনা করা সহজ করে।
  • ব্যাপক কমিউনিটি সাপোর্ট : উবুন্টুর একটি বড় গ্লোবাল ইউজার বেস রয়েছে, যা সমস্যা সমাধানের সময় সমাধান খুঁজে পাওয়া সহজ করে।

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

এই নিবন্ধটি আপনাকে নিম্নলিখিত টপিকগুলি ধাপে ধাপে গাইড করবে:

  1. উবুন্টুতে ডকার ইনস্টল করার উপায়
  2. মৌলিক ডকার ইমেজ অপারেশন
  3. ডকারফাইল ব্যবহার করে কাস্টম ইমেজ তৈরি করা
  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

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

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

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

২. নন-রুট ইউজারদের ডকার ব্যবহারের অনুমতি দিন

ডিফল্টভাবে, শুধুমাত্র রুট ইউজার ডকার চালাতে পারে। একজন সাধারণ ইউজারকে ডকার কমান্ড ব্যবহারের অনুমতি দেওয়ার জন্য, ইউজারটিকে docker গ্রুপে যোগ করুন।

sudo usermod -aG docker $USER

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

৩. ডকার টেস্ট করুন

hello-world কনটেইনার চালিয়ে চেক করুন যে ডকার সঠিকভাবে কাজ করছে কিনা।

docker run hello-world

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

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

ডকার ইমেজ কী?

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

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

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

docker pull ubuntu

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

আপনি ডাউনলোড করা Ubuntu ইমেজ ব্যবহার করে নিম্নলিখিত কমান্ড দিয়ে একটি কনটেইনার শুরু করতে পারেন:

docker run -it ubuntu bash

এই কমান্ডটি Ubuntu কনটেইনারের মধ্যে একটি শেল খোলে, যা আপনাকে এটির সাথে সরাসরি মিথস্ক্রিয়া করতে দেয়।

চলমান কনটেইনারগুলির তালিকা

বর্তমানে কোন কনটেইনারগুলি চলছে তা পরীক্ষা করার জন্য, এই কমান্ডটি ব্যবহার করুন:

docker ps

সমস্ত কনটেইনার প্রদর্শন করার জন্য, যার মধ্যে বন্ধ করা কনটেইনারগুলিও অন্তর্ভুক্ত, -a অপশন যোগ করুন:

docker ps -a

কনটেইনারগুলি বন্ধ করা এবং সরানো

একটি চলমান কনটেইনার বন্ধ করার জন্য, নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

docker stop [container ID or name]

একটি অপ্রয়োজনীয় কনটেইনার সরানোর জন্য, এই কমান্ডটি ব্যবহার করুন:

docker rm [container ID or name]

Docker ইমেজগুলি পরিচালনা করা

সমস্ত ডাউনলোড করা Docker ইমেজের তালিকা দেখার জন্য, নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

docker images

একটি অব্যবহৃত ইমেজ সরানোর জন্য, এই কমান্ডটি ব্যবহার করুন:

docker rmi [image ID]

৪. Dockerfile দিয়ে কাস্টম Docker ইমেজ তৈরি করা

Dockerfile কী?

Dockerfile হলো একটি কনফিগারেশন ফাইল যা Docker ইমেজ তৈরি করার জন্য ব্যবহৃত হয়। Dockerfile-এ নির্দিষ্ট নির্দেশাবলী সংজ্ঞায়িত করে, আপনি আপনার প্রয়োজন অনুসারে কাস্টমাইজড Docker ইমেজ তৈরি করতে পারেন। এটি উন্নয়ন পরিবেশকে স্ট্যান্ডার্ডাইজ করতে এবং ইমেজে প্রয়োজনীয় প্যাকেজ অন্তর্ভুক্ত করতে সাহায্য করে।

Dockerfile-এর মৌলিক সিনট্যাক্স

একটি Dockerfile সাধারণত নিম্নলিখিত মূল কমান্ডগুলি অন্তর্ভুক্ত করে:

CommandDescription
FROMSpecifies the base image
RUNExecutes commands to build the image
COPYCopies files into the container
WORKDIRSets the working directory
CMDDefines the default command to run when the container starts
ENTRYPOINTSpecifies the main command executed when the container runs

Ubuntu-ভিত্তিক কাস্টম Docker ইমেজ তৈরি করা

Ubuntu-এর উপর ভিত্তি করে একটি কাস্টম Docker ইমেজ তৈরি করার জন্য এই ধাপগুলি অনুসরণ করুন।

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

প্রথমে, একটি নতুন প্রজেক্ট ডিরেক্টরি তৈরি করুন এবং এতে প্রবেশ করুন।

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

২. একটি Dockerfile তৈরি করুন

ডিরেক্টরির ভিতরে, একটি Dockerfile তৈরি করুন এবং নিম্নলিখিত কনটেন্ট যোগ করুন:

# Use the official Ubuntu base image
FROM ubuntu:latest

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

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

# Set the working directory
WORKDIR /workspace

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

৩. Docker ইমেজটি তৈরি করুন

Dockerfile থেকে কাস্টম ইমেজটি তৈরি করার জন্য নিম্নলিখিত কমান্ডটি ব্যবহার করুন।

docker build -t my-ubuntu-image .

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

৪. তৈরি করা ইমেজটি যাচাই করুন

নতুন ইমেজটি সফলভাবে তৈরি হয়েছে কিনা তা নিশ্চিত করার জন্য উপলব্ধ ইমেজগুলির তালিকা পরীক্ষা করুন।

docker images

৫. কাস্টম ইমেজ থেকে একটি কনটেইনার চালান

নতুন তৈরি করা কাস্টম ইমেজ ব্যবহার করে একটি কনটেইনার শুরু করুন।

docker run -it my-ubuntu-image

এই কনটেইনারটিতে Dockerfile-এ নির্দিষ্ট curl এবং vim-এর মতো টুলস অন্তর্ভুক্ত থাকা উচিত।

৫. Ubuntu কনটেইনারে জাপানি ভাষা পরিবেশ কনফিগার করা

ডিফল্টভাবে, Ubuntu Docker ইমেজটি ইংরেজিতে সেট করা থাকে। যদি আপনার জাপানি ব্যবহার করার প্রয়োজন হয়, তাহলে অতিরিক্ত কনফিগারেশন প্রয়োজন।

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

Ubuntu কনটেইনারে জাপানি প্রদর্শন এবং ইনপুট সক্ষম করার জন্য, প্রয়োজনীয় ভাষা প্যাক ইনস্টল করুন।

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

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 অ্যাপ্লিকেশন ব্যবহার করা

Docker কনটেইনারের ভিতরে GUI অ্যাপ্লিকেশন চালানোর জন্য, আপনি একটি X সার্ভার ব্যবহার করতে পারেন।

হোস্ট মেশিনে একটি X সার্ভার ইনস্টল করুন এবং X11 সক্ষম করে কনটেইনার চালান।

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

৬. Docker ইমেজের আকার অপ্টিমাইজ এবং ছোট করা

ডকার ইমেজ অপ্টিমাইজ করা কনটেইনার স্টার্টআপ গতি উন্নত করে এবং স্টোরেজ ব্যবহার কমায়। এই বিভাগে হালকা ইমেজ তৈরির পদ্ধতিগুলি পরিচয় করানো হয়েছে।

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

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

FROM ubuntu:minimal

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

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

এই পদ্ধতি ইমেজের আকারকে কয়েকশো মেগাবাইট কমাতে পারে।

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

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 কমান্ড এক্সিকিউট করে পাইথন স্ক্রিপ্ট চালাতে এবং অ্যাপ্লিকেশন ডেভেলপ করতে পারেন।

নোড.জেএস ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করা

নোড.জেএস ডেভেলপমেন্টের জন্য, নিম্নলিখিত 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 কমান্ড ব্যবহার করে জাভাস্ক্রিপ্ট কোড এক্সিকিউট করতে এবং নিয়ন্ত্রিত এনভায়রনমেন্টে অ্যাপ্লিকেশন ডেভেলপ করতে পারেন।

৮. FAQ এবং ট্রাবলশুটিং

ডকার ব্যবহার করার সময়, আপনি বিভিন্ন সমস্যার সম্মুখীন হতে পারেন। এই বিভাগে সাধারণ সমস্যা এবং ঘন ঘন জিজ্ঞাসিত প্রশ্নের সমাধান প্রদান করা হয়েছে।

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

  • ডকার: হোস্ট OS কার্নেল শেয়ার করে, যা এটিকে হালকা করে এবং দ্রুত কনটেইনার স্টার্টআপ সক্ষম করে।
  • ভার্চুয়াল মেশিন (VMs): প্রত্যেক VM-এর নিজস্ব OS থাকে, যা আরও রিসোর্স খরচ করে এবং শুরু করতে বেশি সময় নেয়।

ডকার রিসোর্স ব্যবহারে আরও দক্ষ, যা ডেভেলপমেন্ট এনভায়রনমেন্ট এবং অটোমেটেড ডেপ্লয়মেন্টের জন্য আদর্শ।

ইউবুন্টু কনটেইনারে ডেটা স্থায়ী করা

কনটেইনার বন্ধ হওয়ার পরও ডেটা রাখার জন্য, ভলিউম মাউন্টিং ব্যবহার করুন।

docker run -v my_data:/data ubuntu

my_data ভলিউম ডেটা স্থায়ীভাবে সংরক্ষণ করে, যা কনটেইনার সরানোর পরও অ্যাক্সেস করা যায়।

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

১. permission denied ত্রুটি

ডকার কমান্ড চালানোর সময় permission denied ত্রুটি দেখলে, আপনার ইউজার docker গ্রুপে নাও থাকতে পারে।

আপনার ইউজারকে docker গ্রুপে যোগ করুন নিম্নলিখিত কমান্ড দিয়ে:

sudo usermod -aG docker $USER

এই কমান্ড চালানোর পর, পরিবর্তন প্রয়োগ করার জন্য লগ আউট এবং লগ ইন করুন।

২. image not found ত্রুটি

যদি একটি ইমেজ ডকার হাব থেকে সরানো হয়ে থাকে, তাহলে একটি বৈধ সংস্করণ টানার জন্য ভিন্ন ট্যাগ নির্দিষ্ট করুন।

docker pull ubuntu:22.04

একটি সংস্করণ নির্দিষ্ট করে, আপনি নিশ্চিত করতে পারেন যে আপনি একটি কার্যকরী ইমেজ ডাউনলোড করছেন।

年収訴求