Skip to content
Dokumentatsiya
Linux serverlarga Docker o'rnatish

Linux serverlarga Docker o'rnatish

Kirish

Docker Engine — bu konteynerlarni yaratish va boshqarish uchun ochiq kodli(open-source) platforma. U ilovalarni barcha dependency'lari bilan birga yengil, portativ konteynerlarga joylab, istalgan serverda bir xil ishlashini ta'minlaydi.

Ushbu qo'llanmada biz Docker Engine'ni rasmiy Docker repository orqali Ubuntu, Debian, Fedora va RHEL operatsion tizimlariga o'rnatamiz. Shuningdek, o'rnatishdan keyingi sozlashlar, yangilash va o'chirib tashlashni ham ko'rib chiqamiz.

Firewall haqida muhim eslatma

Docker konteyner portlarini ochganda, bu portlar ufw yoki firewalld qoidalarini chetlab o'tadi. Ya'ni siz ufw deny 8080 deb yozsangiz ham, Docker orqali ochilgan 8080 port tashqaridan kirish mumkin bo'lib qoladi.

Docker faqat iptables-nft va iptables-legacy bilan mos ishlaydi. nft bilan yaratilgan firewall qoidalari Docker o'rnatilgan tizimda ishlamaydi.

Batafsil: Docker and ufw (opens in a new tab)

Docker Engine o'rnatish

Ubuntu'ga Docker Engine o'rnatish

OS talablari

Docker Engine'ni o'rnatish uchun quyidagi Ubuntu versiyalarining 64 bitli versiyasi kerak:

  • Ubuntu Questing 25.10
  • Ubuntu Noble 24.04 (LTS)
  • Ubuntu Jammy 22.04 (LTS)

Qo'llab-quvvatlanadigan arxitekturalar: x86_64 (amd64), armhf, arm64, s390x, ppc64le (ppc64el)

Linux Mint kabi Ubuntu-ga asoslangan distributivlarda Docker rasman qo'llab-quvvatlanmaydi (ishlashi mumkin, lekin kafolatlanmaydi).

Eski versiyalarni o'chirish

Docker'ning rasmiy versiyasini o'rnatishdan oldin, tizimda bo'lishi mumkin bo'lgan norasmiy Docker paketlarini olib tashlash kerak — ular ziddiyat keltirib chiqarishi mumkin:

sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc | cut -f1)

apt bu paketlarning hech biri o'rnatilmaganligini aytishi mumkin — bu normal holat.

/var/lib/docker/ papkasidagi imagelar, konteynerlar va volumelar Docker o'chirilganda avtomatik o'chirilmaydi.

APT repository orqali o'rnatish

1-> Docker'ning rasmiy GPG kaliti va APT repository'sini qo'shamiz:

# Docker'ning rasmiy GPG kalitini qo'shish
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
 
# APT source ro'yxatiga Docker repository'ni qo'shish
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF
 
sudo apt update

Bu buyruqlar nima qiladi?

  • GPG kalit — yuklab olinadigan paketlar haqiqiy Docker'dan ekanligini tasdiqlaydi
  • APT source — apt paket menejeriga Docker'ning rasmiy repository manzilini beradi
  • ${UBUNTU_CODENAME:-$VERSION_CODENAME} — tizimingizning kodnomasini avtomatik aniqlaydi (masalan, noble, jammy)

2-> Docker Engine va uning komponentlarini o'rnatamiz:

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

Bu yerda:

  • docker-ce — Docker Engine (asosiy dvigatel)
  • docker-ce-cli — Docker CLI (buyruq qatori interfeysi)
  • containerd.io — konteyner runtime
  • docker-buildx-plugin — kengaytirilgan build imkoniyatlari
  • docker-compose-plugindocker compose buyrug'i (multi-container ilovalar uchun)

3-> Docker'ni ishga tushiramiz va tekshiramiz:

sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker

4-> O'rnatish muvaffaqiyatli bo'lganini tekshiramiz:

sudo docker run hello-world

Bu buyruq test image yuklab, konteynerda ishga tushiradi. Ekranda "Hello from Docker!" xabari chiqsa — hammasi to'g'ri ishlayapti.

O'rnatishdan keyingi sozlashlar

Docker o'rnatilgandan keyin bir nechta muhim sozlash qilish kerak.

Root'siz Docker ishlatish

Default holatda Docker faqat root yoki sudo bilan ishlaydi. Oddiy foydalanuvchi sifatida Docker buyruqlarini bajarish uchun, foydalanuvchini docker guruhiga qo'shing:

sudo usermod -aG docker $USER

Bu o'zgarish kuchga kirishi uchun yangi terminal sessiyasi ochish yoki tizimga qayta kirish kerak. Yoki hoziroq qo'llash uchun:

newgrp docker

Keyin tekshiring — sudo siz ishlashi kerak:

docker run hello-world

Docker o'rnatishni tekshirish

DevOps Journey platformasi imageni ishga tushirib, Docker to'g'ri ishlayotganini tekshirib ko'ring:

docker run -d -p 3000:3000 --name devops-journey --restart=always devopsjourneyuz/devops-journey-uz:latest

Brauzerda http://server_ip:3000 ochsangiz, DevOps Journey platformasi ko'rinishi kerak.

Agar sahifa ochilmasa, firewall tekshiring:

ufw (Ubuntu/Debian):

sudo ufw allow 3000
sudo ufw reload

firewalld (RHEL/Fedora):

sudo firewall-cmd --zone=public --add-port=3000/tcp --permanent
sudo firewall-cmd --reload

SELinux (RHEL/Fedora) — agar enforcing rejimda bo'lsa:

sudo getenforce
# Vaqtincha o'chirish (test uchun):
sudo setenforce 0

Docker uchun proxy sozlash

Bu qadamni faqat serveringiz proxy orqali internetga chiqadigan bo'lsagina bajaring.

Agar kompaniyangizda serverlar proxy orqali ishlasa, Docker'ga ham proxy sozlamalarini berish kerak:

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf

Fayl tarkibi:

http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://myproxy:port"
Environment="HTTPS_PROXY=http://myproxy:port"
Environment="NO_PROXY=localhost,127.0.0.1"

Qo'llaymiz:

sudo systemctl daemon-reload
sudo systemctl restart docker

Tekshirish:

docker info | grep -i proxy

Docker Engine'ni yangilash

APT orqali (Ubuntu/Debian)

Agar Docker'ni APT repository orqali o'rnatgan bo'lsangiz, yangilash oddiy:

sudo apt update
sudo apt upgrade docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

DNF orqali (Fedora/RHEL)

sudo dnf upgrade docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Convenience script orqali

Docker tez o'rnatish uchun skript ham taqdim etadi. Bu faqat test va development muhitlari uchun tavsiya etiladi:

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

Production muhitda bu skriptdan foydalanmang! U parametrlarni moslash imkonini bermaydi va kutilmagan major version yangilanishlariga olib kelishi mumkin.

Skript nima qilishini oldindan ko'rish uchun:

sudo sh ./get-docker.sh --dry-run

Pre-release (beta) versiyalarni o'rnatish uchun:

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

Docker Engine'ni o'chirib tashlash

1-> Docker paketlarini o'chiramiz:

sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras

2-> Imagelar, konteynerlar va volumelarni o'chiramiz:

sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

3-> Repository source va GPG kalitini o'chiramiz:

sudo rm /etc/apt/sources.list.d/docker.sources
sudo rm /etc/apt/keyrings/docker.asc

Qo'shimcha

Foydalanilgan manbalar: docs.docker.com (opens in a new tab)

Sana: 2023.11.19(2023-yil 19-noyabr)

Oxirgi yangilanish: 2026.02.12(2026-yil 12-fevral)

Muallif: Otabek Ismoilov

Telegram (opens in a new tab)GitHub (opens in a new tab)LinkedIn (opens in a new tab)