Ubuntu मा Docker इमेज सिर्जना र व्यवस्थापन पूर्ण गाइड | स्थापना-अनुकूलन-समस्या समाधान

目次

1. परिचय

Docker के हो?

Docker एक प्लेटफर्म हो जसले कन्टेनर-प्रकारको भर्चुअलाइजेशन प्रविधि प्रयोग गरेर एप्लिकेसनहरूको विकास, वितरण र निष्पादनलाई कुशलतापूर्वक सम्पादन गर्न मद्दत गर्दछ। परम्परागत भर्चुअल मेसिन (VM) भन्दा फरक, कन्टेनरले होस्ट OS को कर्नेल साझा गर्दछ, जसले गर्दा सुरुवात छिटो हुन्छ र स्रोतहरूको खपत पनि कम हुन्छ।

Ubuntu मा Docker प्रयोग गर्ने फाइदाहरू

Ubuntu Docker सँग उच्च अनुकूलता भएको लिनक्स डिस्ट्रीब्युसनहरू मध्ये एक हो। यसका कारणहरू निम्नानुसार छन्।
  • आधिकारिक समर्थन:Docker ले Ubuntu लाई आधिकारिक रूपमा समर्थन गर्दछ, र आधिकारिक रिपोजिटरीबाट सजिलै स्थापना गर्न सकिन्छ।
  • स्थिर प्याकेज व्यवस्थापन:Ubuntu को APT प्याकेज व्यवस्थापक प्रयोग गरेर Docker को संस्करण व्यवस्थापन सजिलो हुन्छ।
  • व्यापक सामुदायिक समर्थन:Ubuntu विश्वव्यापी रूपमा धेरै प्रयोगकर्ताहरू भएकोले, समस्या उत्पन्न हुँदा जानकारी प्राप्त गर्न सजिलो हुन्छ।

यो लेखबाट सिक्न सकिने कुराहरू

यो लेखमा निम्न सामग्रीहरूलाई क्रमशः व्याख्या गरिएको छ।
  1. Ubuntu मा Docker स्थापना गर्ने विधि
  2. Docker इमेजको आधारभूत सञ्चालन
  3. Dockerfile प्रयोग गरेर कस्टम इमेज निर्माण
  4. Ubuntu कन्टेनरको जापानी वातावरण सेटिङ
  5. Docker इमेजको अनुकूलन र हल्का बनाउने
  6. Ubuntu कन्टेनरमा एप्लिकेसन विकास
  7. सामान्य त्रुटिहरू र समाधानहरू
नौसिखिया देखि उन्नत प्रयोगकर्ताहरूका लागि उपयोगी सामग्री भएकोले, कृपया सन्दर्भको रूपमा प्रयोग गर्नुहोस्।
侍エンジニア塾

2. Ubuntu मा Docker स्थापना गर्नुहोस्

आधिकारिक रिपोजिटरी प्रयोग गरेर Docker को स्थापना

Ubuntu मा, आधिकारिक रिपोजिटरी प्रयोग गरेर Docker लाई सजिलै स्थापना गर्न सकिन्छ। निम्न चरणहरू पालन गरेर सेटअप गर्नुहोस्।

१. विद्यमान Docker प्याकेजहरू हटाउनुहोस्

Ubuntu मा,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

३. Docker आधिकारिक रिपोजिटरी थप्नुहोस्

Docker को आधिकारिक 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

४. Docker को स्थापना

रिपोजिटरी थपेपछि, Docker स्थापना गर्नुहोस्।
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

५. स्थापनाको पुष्टि

Docker सही रूपमा स्थापित भएको पुष्टि गर्न, संस्करण जानकारी देखाउनुहोस्।
docker --version

स्थापना पछिको प्रारम्भिक सेटिङ

१. Docker सेवाको सुरुवात र सक्रियकरण

Docker सेवालाई सुरु गर्नुहोस् र प्रणाली सुरु हुँदा स्वचालित रूपमा चल्ने गरी सेट गर्नुहोस्।
sudo systemctl start docker
sudo systemctl enable docker

२. non-root प्रयोगकर्ताले Docker प्रयोग गर्न सकिने बनाउनुहोस्

डिफल्टमा, Docker केवल root प्रयोगकर्ताले चलाउन सक्छ, त्यसैले सामान्य प्रयोगकर्ताले Docker कमान्ड प्रयोग गर्न सकून् भनेर सेट गर्नुहोस्।
sudo usermod -aG docker $USER
सेटिङ लागू गर्न, एकपटक लगआउट गर्नुहोस् र फेरि लगइन गर्नुहोस्।

३. कार्य सञ्चालन पुष्टि

सामान्य प्रयोगकर्ताको अधिकारलेhello-worldकन्टेनर चलाएर, Docker सही रूपमा काम गर्छ कि पुष्टि गर्नुहोस्।
docker run hello-world
आउटपुटमा «Hello from Docker!» देखिएमा, स्थापना सफल छ।

3. Docker इमेजको आधारभूत सञ्चालन

Docker इमेज भनेको के हो?

Docker इमेज भनेको कन्टेनरहरू सिर्जना गर्नका लागि टेम्प्लेट जस्तो हो। Ubuntu आधारित Docker इमेज प्रयोग गरेर, तुरुन्तै Ubuntu वातावरण स्थापना गर्न सकिन्छ।

Docker Hub बाट Ubuntu इमेज प्राप्त गर्नुहोस्

Docker Hub मा धेरै आधिकारिक Docker इमेजहरू दर्ता छन्। Ubuntu इमेज प्राप्त गर्नका लागि, निम्न कमान्ड चलाउनुहोस्।
docker pull ubuntu

कन्टेनरको सुरु र रोक

प्राप्त Ubuntu इमेज प्रयोग गरेर, कन्टेनर सुरु गर्न सकिन्छ।
docker run -it ubuntu bash
यो कमान्ड चलाउँदा, Ubuntu कन्टेनरको शेल खुल्छ, र कन्टेनर भित्र सञ्चालन गर्न सकिन्छ।

कन्टेनरहरूलाई सूचीबद्ध गर्नुहोस्

सुरु भएका कन्टेनरहरू जाँच्नका लागि, निम्न कमान्ड प्रयोग गर्नुहोस्।
docker ps
सबै कन्टेनरहरू (रोकिएका समेत) देखाउनका लागि,-aविकल्प थप्नुहोस्।
docker ps -a

कन्टेनरको रोक र हटाउनु

चलिरहेको कन्टेनर रोकाउनका लागि, निम्न कमान्ड प्रयोग गर्नुहोस्।
docker stop [कन्टेनर ID वा नाम]
अनावश्यक कन्टेनर हटाउनका लागि, निम्न कमान्ड चलाउनुहोस्।
docker rm [कन्टेनर ID वा नाम]

Docker इमेजको व्यवस्थापन

डाउनलोड गरिएका Docker इमेजहरू सूचीबद्ध गर्नका लागि, निम्न कमान्ड प्रयोग गर्नुहोस्।
docker images
अनावश्यक इमेज हटाउनका लागि, निम्न कमान्ड प्रयोग गर्नुहोस्।
docker rmi [इमेज ID]

4. Dockerfile प्रयोग गरेर कस्टम इमेजको निर्माण

Dockerfile भनेको के हो?

Dockerfile भनेको Docker इमेज सिर्जना गर्नका लागिको कन्फिगरेसन फाइल हो। Dockerfile मा वर्णित निर्देशनहरू अनुसार, कस्टमाइज्ड Docker इमेज सिर्जना गर्न सकिन्छ। यसले विकास वातावरणलाई एकरूप बनाउन वा आवश्यक प्याकेजहरू समावेश भएको इमेज सिर्जना गर्न सकिन्छ।

Dockerfile को आधारभूत संरचना

Dockerfile मा, मुख्य रूपमा निम्न जस्ता कमान्डहरू लेखिन्छन्।
कमान्डविवरण
FROMआधारभूत इमेज निर्दिष्ट गर्नुहोस्
RUNकमान्ड चलाएर इमेज निर्माण गर्नुहोस्
COPYफाइललाई कन्टेनरमा प्रतिलिपि गर्नुहोस्
WORKDIRकार्य डाइरेक्टरी सेट गर्नुहोस्
CMDकन्टेनर सुरु हुँदा चलाउने डिफल्ट कमान्ड
ENTRYPOINTकन्टेनर चलाउँदा एन्त्रिपोइन्ट

Ubuntu आधारित कस्टम इमेज निर्माण

निम्न चरणहरू अनुसार, Ubuntu आधारित कस्टम Docker इमेज निर्माण गरौं।

१. कार्य डाइरेक्टरी निर्माण गर्नुहोस्

पहिले, नयाँ प्रोजेक्ट डाइरेक्टरी निर्माण गर्नुहोस् र त्यहाँ जानुहोस्।
mkdir my-ubuntu-image
cd my-ubuntu-image

२. Dockerfile निर्माण गर्नुहोस्

डाइरेक्टरी भित्रDockerfileनिर्माण गर्नुहोस् र निम्न सामग्री लेख्नुहोस्।
# आधारभूत Ubuntu को आधिकारिक इमेज
FROM ubuntu:latest

# मेन्टेनर जानकारी (वैकल्पिक)
LABEL maintainer="your-email@example.com"

# प्याकेज सूची अद्यावधिक गर्नुहोस् र आधारभूत उपकरणहरू स्थापना गर्नुहोस्
RUN apt update && apt install -y curl vim git

# कार्य डाइरेक्टरी सेट गर्नुहोस्
WORKDIR /workspace

# कन्टेनर सुरु हुँदा चलाउने कमान्ड
CMD ["bash"]

३. Docker इमेज बिल्ड गर्नुहोस्

निर्माण गरेकोDockerfileप्रयोग गरेर, कस्टम इमेज बिल्ड गर्नुहोस्।
docker build -t my-ubuntu-image .
-tविकल्पले इमेज नाम निर्दिष्ट गर्दछ।

४. इमेज जाँच गर्नुहोस्

बिल्ड भएको इमेज जाँच गर्न, निम्न कमान्ड चलाउनुहोस्।
docker images

५. कन्टेनर सुरु गर्नुहोस्

निर्माण गरेको कस्टम इमेजबाट कन्टेनर सुरु गर्नुहोस्।
docker run -it my-ubuntu-image
यो कन्टेनरमाcurlवाvimजस्ता उपकरणहरू स्थापना भएका हुनुपर्छ।

5. Ubuntu कन्टेनरको जापानी भाषा वातावरण सेटिङ

डिफल्ट Ubuntu इमेज अंग्रेजी वातावरणमा छ, र जापानी भाषा प्रयोग गर्नका लागि अतिरिक्त सेटिङ आवश्यक छ।

जापानी लोकेलको सेटिङ

Ubuntu कन्टेनरमा जापानी भाषा प्रदर्शन र इनपुट गर्न सकिने बनाउनका लागि, जापानी लोकेल स्थापना गर्नुहोस्।

1. आवश्यक प्याकेजहरूको स्थापना

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

2. लोकेलको सेटिङ

लोकेल सेट गर्नुहोस् र लागू गर्नुहोस्।
locale-gen ja_JP.UTF-8
update-locale LANG=ja_JP.UTF-8

3. सेटिङको प्रतिबिम्ब

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

6. Docker छविको अनुकूलन र हल्का बनाउने

Docker छविहरूलाई अनुकूलन गरेर, कन्टेनरको सुरु हुने गतिलाई सुधार गर्न सकिन्छ र भण्डारणको प्रयोगलाई घटाउन सकिन्छ। यहाँ, हल्का छवि बनाउनका लागि प्रविधिहरू प्रस्तुत गर्दछौं।

हल्का Ubuntu-आधारित छवि बनाउने विधि

डिफल्टकोubuntu:latestको आकार ठूलो हुन्छ, त्यसैलेubuntu:minimalजस्तो हल्का प्रयोग गर्दा कन्टेनरको आकार नियन्त्रण गर्न सकिन्छ।
FROM ubuntu:minimal
यसबाहेक, Ubuntu भन्दा धेरै हल्काAlpine Linuxप्रयोग गर्ने विधि पनि छ।
FROM alpine:latest
RUN apk add --no-cache bash curl
यो विधि प्रयोग गर्दा, छविको आकारलाई सयौं MB बाट घटाउन सकिन्छ।

नचाहिने फाइलहरू हटाएर छवि आकार घटाउने

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
यो विधि प्रयोग गरेर, विकास उपकरणहरूलाई अन्तिम छविमा समावेश नगरी हल्का वातावरण बनाउन सकिन्छ।

7. अभ्यास: Ubuntu कन्टेनरमा एप विकास

यहाँ, Ubuntu कन्टेनर प्रयोग गरेर वास्तविक विकास वातावरण निर्माण गर्ने विधि प्रस्तुत गर्दछौं।

Python विकास वातावरणको सेटअप

Ubuntu कन्टेनर भित्र Python विकास वातावरण सेटअप गर्नको लागि, निम्न 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कमान्ड प्रयोग गरेर, JavaScript कार्यान्वयन र एप विकास सम्भव हुन्छ।

8. FAQ・समस्या निवारण

Docker प्रयोग गर्दा, विभिन्न समस्याहरू सामना गर्न सकिन्छ। यहाँ, सामान्य प्रश्नहरू र तिनका समाधानहरू प्रस्तुत गरिन्छ।

Docker र भर्चुअल मेसिनको भिन्नता

  • Docker: होस्ट OS को कर्नेल साझा गर्ने भएकाले हल्का छ र कन्टेनरको सुरुवात छिटो हुन्छ।
  • भर्चुअल मेसिन (VM): स्वतन्त्र OS भएकोले, स्रोतको उपभोग धेरै हुन्छ र सुरुवात पनि ढिलो हुन्छ।
Docker स्रोतको अनुकूलनमा उत्कृष्ट छ, त्यसैले विकास वातावरण वा डिप्लोइको स्वचालनका लागि उपयुक्त छ।

Ubuntu कन्टेनरको डाटा स्थायीकरण

कन्टेनर बन्द भए पनि डाटा राख्नको लागि,भोल्युम माउन्टप्रयोग गर्नुहोस्।
docker run -v my_data:/data ubuntu
कन्टेनर हटाए पनिmy_dataभोल्युममा डाटा बचत हुन्छ र पुन: प्रयोग गर्न सकिन्छ।

सामान्य त्रुटि र समाधान

1. permission denied त्रुटि

Docker चलाउँदाpermission deniedदेखियो भने, हालको प्रयोगकर्ताdockerसमूहमा नरहेको हुन सक्छ। निम्न कमान्ड चलाएर प्रयोगकर्तालाईdockerसमूहमा थप्नुहोस्।
sudo usermod -aG docker $USER
लागू गरेपछि, एकपटक लगआउट गरेर फेरि लगइन गर्न आवश्यक छ।

2. image not found त्रुटि

Docker Hub बाट इमेज हटाइएको छ भने, नयाँ ट्याग निर्दिष्ट गरेर प्राप्त गर्नुहोस्।
docker pull ubuntu:22.04
विशेष संस्करण निर्दिष्ट गरेर उपयुक्त इमेज प्राप्त गर्न सकिन्छ।
年収訴求