კონტეინერიზაციის ხელსაწყოების ინსტალაცია

ნაბიჯ-ნაბიჯ სახელმძღვანელო Docker-ის, Kubernetes-ის და ყველა აუცილებელი ხელსაწყოს დასაყენებლად, რომლებიც გჭირდებათ კონტეინერების დეველოპმენტისთვის.

ეს სახელმძღვანელო გთავაზობთ დეტალურ ინსტალაციის ინსტრუქციებს Docker-ისა და Kubernetes-ის ხელსაწყოებისთვის Linux, macOS და Windows პლატფორმებზე. მიჰყევით თქვენი ოპერაციული სისტემისთვის განკუთვნილ ნაბიჯებს, რათა შექმნათ სრული კონტეინერული დეველოპმენტის გარემო.

წინაპირობები

ინსტალაციის დაწყებამდე, დარწმუნდით, რომ თქვენი სისტემა აკმაყოფილებს ამ მოთხოვნებს:

ტექნიკური მოთხოვნები

  • CPU: 64-ბიტიანი პროცესორი ვირტუალიზაციის მხარდაჭერით
  • RAM: მინიმუმ 4GB (რეკომენდებულია 8GB+)
  • Storage: 20GB+ თავისუფალი ადგილი დისკზე
  • Network: ინტერნეტ კავშირი გადმოსაწერად ::

    ოპერაციული სისტემა

  • Windows: Windows 10/11 (64-ბიტიანი) Pro, Enterprise, ან Education
  • macOS: macOS 10.15 (Catalina) ან უფრო ახალი
  • Linux: Ubuntu 20.04+, Debian 10+, Fedora 34+ და ა.შ. ::

    დამატებითი მოთხოვნები

  • მხოლოდ Windows: WSL2 ჩართული
  • მხოლოდ Linux: sudo პრივილეგიები
  • ყველა პლატფორმა: ტერმინალთან/ბრძანებათა ხაზთან მუშაობის გამოცდილება ::

ვირტუალიზაციის მხარდაჭერა


ვირტუალიზაცია უნდა იყოს ჩართული თქვენი BIOS/UEFI-ის პარამეტრებში:


შეამოწმეთ Windows-ზე:

systeminfo | findstr "Virtualization"
უნდა დააბრუნოს: "Virtualization Enabled In Firmware: Yes"

შემოწმება Linux-ზე:

grep -E --color 'vmx|svm' /proc/cpuinfo
თუ ბრძანება გამოიტანს ტექსტს, ვირტუალიზაცია მხარდაჭერილია.

შემოწმება macOS-ზე:

sysctl -a | grep -E --color 'VMX|SVM'
ვირტუალიზაცია ნაგულისხმევად ჩართულია თანამედროვე Mac-ებზე.

Docker-ის ინსტალაცია

Docker-ი არის ჩვენი კონტეინერიზაციის მოგზაურობის საფუძველი, რომელიც გაძლევთ საშუალებას შექმნათ და გაუშვათ კონტეინერები თქვენს ლოკალურ მანქანაზე.

Docker-ი შედგება რამდენიმე კომპონენტისგან, რომლებიც ერთად მუშაობენ:

  • Docker Engine: ძირითადი გარემო, რომელიც აწყობს და უშვებს კონტეინერებს
  • Docker CLI: ბრძანებათა ხაზის ინტერფეისი Docker-თან ურთიერთობისთვის
  • Docker Desktop: GUI აპლიკაცია დამატებითი ხელსაწყოებით (Windows/macOS)
  • Docker Compose: ხელსაწყო მრავალკონტეინერიანი აპლიკაციების განსაზღვრისთვის
  • Docker Hub: საჯარო რეესტრი კონტეინერის იმეიჯების გასაზიარებლად

Docker-ი იყენებს კლიენტ-სერვერის არქიტექტურას, სადაც Docker კლიენტი უკავშირდება Docker დემონს, რომელიც აწყობს, უშვებს და მართავს კონტეინერებს.

ნაბიჯი 1: დააინსტალირეთ Docker Engine

აირჩიეთ თქვენი ოპერაციული სისტემა ქვემოთ და მიჰყევით ინსტალაციის ინსტრუქციებს:

Docker-ი Linux-ზე

Docker-ი ნატიურად მუშაობს Linux-ზე და მისი ინსტალაცია შესაძლებელია პაკეტების რეპოზიტორებიდან:

# განაახლეთ თქვენი პაკეტების ინდექსი
sudo apt-get update

# დააინსტალირეთ apt რეპოზიტორებისთვის საჭირო პირობები HTTPS-ზე
sudo apt-get install -y \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release \
    software-properties-common

# დაამატეთ Docker-ის ოფიციალური GPG გასაღები
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# დაამატეთ Docker-ის რეპოზიტორი
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

# განაახლეთ apt ახალი რეპოზიტორით
sudo apt-get update

# დააინსტალირეთ Docker Engine და დაკავშირებული ხელსაწყოები
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

ალტერნატივა: სწრაფი ინსტალაციის სკრიპტი

სატესტო გარემოებისთვის შეგიძლიათ გამოიყენოთ Docker-ის მოსახერხებელი სკრიპტი:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

ნაბიჯი 2: შეამოწმეთ Docker-ის ინსტალაცია

ინსტალაციის შემდეგ, შეამოწმეთ, რომ Docker-ი სწორად მუშაობს ამ ბრძანებებით:

# შეამოწმეთ Docker-ის ვერსია
docker --version

# იხილეთ დეტალური სისტემური ინფორმაცია
docker info

# გაუშვით სატესტო კონტეინერი
docker run --rm hello-world

თუ Docker-ი სწორად არის დაინსტალირებული, hello-world კონტეინერი ჩამოიტვირთება (თუ უკვე არ არის) და გაეშვება, გამოიტანს წარმატების შეტყობინებას:

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.
...

ნაბიჯი 3: პოსტ-ინსტალაციის კონფიგურაცია

დაასრულეთ თქვენი Docker-ის კონფიგურაცია ამ დამატებითი ნაბიჯებით:

Linux-ის პოსტ-ინსტალაციის ნაბიჯები

დააკონფიგურირეთ Docker-ი, რომ იმუშაოს sudo-ს გარეშე და ჩაირთოს სისტემის გაშვებისას:

# დაამატეთ თქვენი მომხმარებელი docker ჯგუფში
sudo usermod -aG docker $USER

# გამოიყენეთ ახალი ჯგუფის წევრობა (ან გამოდით და ხელახლა შედით)
newgrp docker

# ჩართეთ Docker-ის გაშვება სისტემის ჩატვირთვისას
sudo systemctl enable docker.service
sudo systemctl enable containerd.service

# შეამოწმეთ, რომ შეგიძლიათ Docker-ის გაშვება sudo-ს გარეშე
docker run --rm hello-world

დამატებითი Linux კონფიგურაცია (სურვილისამებრ)

დააკონფიგურირეთ Docker დემონის პარამეტრები /etc/docker/daemon.json ფაილის შექმნით ან რედაქტირებით:

{
  "default-address-pools": [
    {"base": "172.17.0.0/16", "size": 24}
  ],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  },
  "storage-driver": "overlay2",
  "features": {
    "buildkit": true
  }
}

რედაქტირების შემდეგ, გადატვირთეთ Docker-ი:

sudo systemctl restart docker

Kubernetes-ის ხელსაწყოების ინსტალაცია

Kubernetes-ი გაძლევთ საშუალებას მოახდინოთ კონტეინერების ორკესტრირება მრავალ ჰოსტზე. ჩვენ დავაინსტალირებთ აუცილებელ ხელსაწყოებს ლოკალური Kubernetes დეველოპმენტისთვის.

ნაბიჯი 1: დააინსტალირეთ kubectl

kubectl არის ბრძანებათა ხაზის ხელსაწყო Kubernetes კლასტერებთან ურთიერთობისთვის:

დააინსტალირეთ kubectl Linux-ზე

# ჩამოტვირთეთ უახლესი სტაბილური ვერსია
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

# შეამოწმეთ ბინარული ფაილი (სურვილისამებრ, მაგრამ რეკომენდებულია)
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
echo "$(cat kubectl.sha256)  kubectl" | sha256sum --check

# დააინსტალირეთ kubectl
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

# შეამოწმეთ ინსტალაცია
kubectl version --client

ალტერნატიული ინსტალაციის მეთოდები Linux-ისთვის

პაკეტების მენეჯერის გამოყენებით (Ubuntu/Debian):

# დაამატეთ Kubernetes apt რეპოზიტორი
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list

# დააინსტალირეთ kubectl
sudo apt-get update
sudo apt-get install -y kubectl

snap-ის გამოყენებით:

sudo snap install kubectl --classic

ნაბიჯი 2: დააინსტალირეთ Minikube

Minikube ქმნის ლოკალურ ერთკვანძიან Kubernetes კლასტერს დეველოპმენტისა და ტესტირებისთვის:

დააინსტალირეთ Minikube Linux-ზე

# ჩამოტვირთეთ უახლესი Minikube ბინარული ფაილი
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64

# გახადეთ შესრულებადი და გადაიტანეთ თქვენს PATH-ში არსებულ დირექტორიაში
sudo install minikube-linux-amდ64 /usr/local/bin/minikube

# შეამოწმეთ ინსტალაცია
minikube version

აირჩიეთ დრაივერი Minikube-სთვის

Minikube-ს სჭირდება "დრაივერი" Kubernetes კლასტერის შესაქმნელად. Linux-ზე რამდენიმე ვარიანტი გაქვთ:

Docker დრაივერი (რეკომენდებულია, თუ Docker-ი დაინსტალირებულია):

minikube config set driver docker

KVM დრაივერი (მოითხოვს KVM-ის ინსტალაციას):

# დააინსტალირეთ KVM
sudo apt-get install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils

# დააინსტალირეთ KVM დრაივერი Minikube-სთვის
curl -LO https://storage.googleapis.com/minikube/releases/latest/docker-machine-driver-kvm2 && \
chmod +x docker-machine-driver-kvm2 && \
sudo mv docker-machine-driver-kvm2 /usr/local/bin/

# დააკონფიგურეთ Minikube KVM-ის გამოსაყენებლად
minikube config set driver kvm2

VirtualBox დრაივერი (მოითხოვს VirtualBox-ის ინსტალაციას):

# დააინსტალირეთ VirtualBox
sudo apt-get install -y virtualbox

# დააკონფიგურეთ Minikube VirtualBox-ის გამოსაყენებლად
minikube config set driver virtualbox

ნაბიჯი 3: გაუშვით თქვენი პირველი Kubernetes კლასტერი

ახლა, როდესაც Minikube დაინსტალირებულია, მოდით შევქმნათ თქვენი პირველი ლოკალური Kubernetes კლასტერი:

# გაუშვით Minikube ნაგულისხმევი პარამეტრებით
minikube start

# შეამოწმეთ კლასტერის სტატუსი
minikube status

# იხილეთ კლასტერის ინფორმაცია
kubectl cluster-info

# იხილეთ კვანძები კლასტერში
kubectl get nodes

თუ წარმატებით დასრულდა, უნდა ნახოთ მსგავსი გამომავალი:

😄  minikube v1.31.2 on Linux 5.15.0-60-generic
✨  Using the docker driver based on existing profile
👍  Starting control plane node minikube in cluster minikube
🚜  Pulling base image ...
🔄  Restarting existing docker container for "minikube" ...
🐳  Preparing Kubernetes v1.28.3 on Docker 24.0.7 ...
🔎  Verifying Kubernetes components...
    ▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
🌟  Enabled addons: default-storageclass, storage-provisioner
🏄  Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

ნაბიჯი 4: დააინსტალირეთ Helm (სურვილისამებრ)

Helm-ი არის პაკეტების მენეჯერი Kubernetes-ისთვის, რომელიც გეხმარებათ აპლიკაციების ინსტალაციასა და მართვაში თქვენს კლასტერზე:

დააინსტალირეთ Helm Linux-ზე

სკრიპტ-ინსტალერის გამოყენებით (რეკომენდებულია):

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh

# შეამოწმეთ ინსტალაცია
helm version

ალტერნატიული ინსტალაციის მეთოდები:

# Debian/Ubuntu
sudo apt-get update
sudo apt-get install helm

# CentOS/RHEL
sudo yum install helm

# Snap
sudo snap install helm --classic

დამატებითი ხელსაწყოები (სურვილისამებრ)

განიხილეთ ეს დამატებითი ხელსაწყოები თქვენი Kubernetes დეველოპმენტის გამოცდილების გასაუმჯობესებლად:

Kubernetes Dashboard

ვებ-ზე დაფუძნებული UI Kubernetes კლასტერებისთვის
# ჩართეთ დაფა Minikube-ში
minikube addons enable dashboard

# შედით დაფაზე
minikube dashboard

Lens

IDE Kubernetes-ისთვისჩამოტვირთეთ k8slens.dev-დან

kubectx & kubens

ხელსაწყოები კონტექსტებსა და ნეიმსფეისებს შორის გადასართავად
# დააინსტალირეთ Linux/macOS-ზე
brew install kubectx

# დააინსტალირეთ Windows-ზე
choco install kubectx

k9s

ტერმინალის UI Kubernetes-ისთვის
# დააინსტალირეთ Linux/macOS-ზე
brew install k9s

# დააინსტალირეთ Windows-ზე
choco install k9s

თქვენი ინსტალაციის შემოწმება

ახლა, როდესაც დააინსტალირეთ ყველა საჭირო კომპონენტი, მოდით შევამოწმოთ, რომ ყველაფერი სწორად მუშაობს რამდენიმე ძირითადი ტესტის ჩატარებით. ეს უზრუნველყოფს, რომ თქვენი დეველოპმენტის გარემო სწორად არის მოწყობილი, სანამ აპლიკაციების შექმნას დაიწყებთ.

ნაბიჯი 1: შეამოწმეთ Docker

მოდით, პირველ რიგში დავრწმუნდეთ, რომ Docker-ი გამართულად მუშაობს რამდენიმე მარტივი ბრძანების გაშვებით:

# გაუშვით მარტივი კონტეინერი და შეამოწმეთ გამომავალი
docker run --rm alpine echo "Hello from Docker container!"

ეს ბრძანება ჩამოტვირთავს მსუბუქ Alpine Linux იმეიჯს (თუ უკვე არ არის) და გაუშვებს კონტეინერს, რომელიც გამოიტანს მისალმების შეტყობინებას. --rm დროშა უზრუნველყოფს კონტეინერის ავტომატურ წაშლას შესრულების შემდეგ.

# ჩამოთვალეთ გაშვებული კონტეინერები, რათა შეამოწმოთ Docker დემონის რეაგირება
docker ps

თქვენ უნდა ნახოთ გაშვებული კონტეინერების სია (რომელიც შეიძლება ცარიელი იყოს, თუ არ გაქვთ გაშვებული კონტეინერები).

# შექმენით მარტივი Docker ქსელი ქსელის ფუნქციონირების შესამოწმებლად
docker network create test-network

# შეამოწმეთ, რომ ქსელი შეიქმნა
docker network ls | grep test-network

# წაშალეთ სატესტო ქსელი დასრულებისას
docker network rm test-network

თუ ეს ბრძანებები შეცდომების გარეშე შესრულდება, თქვენი Docker-ის ინსტალაცია სწორად მუშაობს.

ნაბიჯი 2: შეამოწმეთ Kubernetes

ახლა, მოდით შევამოწმოთ, რომ თქვენი Kubernetes კლასტერი მუშაობს და შეუძლია აპლიკაციების დეპლოიმენტი:

# შეამოწმეთ, რომ Minikube მუშაობს შესაბამისი სტატუსით
minikube status

თქვენ უნდა ნახოთ გამომავალი, რომელიც მიუთითებს, რომ Minikube მუშაობს, სადაც host, kubelet და apiserver ყველა აჩვენებს "Running" სტატუსს.

# გაუშვით მარტივი სატესტო აპლიკაცია თქვენს კლასტერში
kubectl create deployment hello-kubernetes --image=k8s.gcr.io/echoserver:1.4

# გამოაჩინეთ დეპლოიმენტი როგორც NodePort სერვისი
kubectl expose deployment hello-kubernetes --type=NodePort --port=8080

# დაელოდეთ ცოტა ხანს, სანამ პოდი მზად იქნება
kubectl wait --for=condition=ready pod -l app=hello-kubernetes --timeout=60s

მოდით შევამოწმოთ, რა შევქმენით:

# შეამოწმეთ, რომ პოდი მუშაობს
kubectl get pods -l app=hello-kubernetes

# შეისწავლეთ შექმნილი სერვისი
kubectl get services hello-kubernetes

# მიიღეთ დეტალური ინფორმაცია ჩვენი დეპლოიმენტის შესახებ
kubectl describe deployment hello-kubernetes

და ბოლოს, მოდით შევიდეთ ჩვენს აპლიკაციაში:

# გახსენით სერვისი თქვენს ნაგულისხმევ ბრაუზერში
minikube service hello-kubernetes

ნაბიჯი 3: გაასუფთავეთ სატესტო რესურსები

მას შემდეგ, რაც დარწმუნდებით, რომ ყველაფერი მუშაობს, მოდით გავასუფთავოთ სატესტო რესურსები:

# წაშალეთ ჩვენ მიერ შექმნილი სერვისი
kubectl delete service hello-kubernetes

# წაშალეთ დეპლოიმენტი
kubectl delete deployment hello-kubernetes

# შეამოწმეთ, რომ რესურსები წაიშალა
kubectl get all | grep hello-kubernetes

ბოლო ბრძანებამ არ უნდა დააბრუნოს შედეგი, რაც მიუთითებს, რომ ყველა რესურსი წარმატებით წაიშალა.

შემდეგი ნაბიჯები

ახლა, როდესაც თქვენ გაქვთ მოქმედი Docker და Kubernetes გარემო, მზად ხართ დაიწყოთ კონტეინერიზებული აპლიკაციების შექმნა, დეპლოიმენტი და მართვა! შემდეგ სექციებში ჩვენ განვიხილავთ, თუ როგორ შევქმნათ Docker იმეიჯები, ვიმუშაოთ კონტეინერებთან და გავუშვათ აპლიკაციები Kubernetes-ზე.

რას მიაღწიეთ

თქვენ ახლა გაქვთ სრულად ფუნქციონალური ლოკალური დეველოპმენტის გარემო:
  • Docker-ი კონტეინერების სამართავად
  • Minikube ლოკალური Kubernetes დეველოპმენტისთვის
  • kubectl Kubernetes კლასტერებთან ურთიერთობისთვის
  • აუცილებელი ხელსაწყოები კონტეინერიზებული აპლიკაციების დეველოპმენტისთვის

სად წავიდეთ შემდეგ

  • ისწავლეთ Docker-ის საფუძვლები და შექმენით თქვენი პირველი კონტეინერი
  • გაიგეთ Kubernetes-ის კონცეფციები და არქიტექტურა
  • გაუშვით მრავალკონტეინერიანი აპლიკაციები Kubernetes-ით
  • შეისწავლეთ დეპლოიმენტის მოწინავე პატერნები