Skip to content
Dokumentatsiya
Mastering Docker

Mastering Docker: Buyruqlar bilan ishlash to'liq qo'llanmasi

Docker — bu applicationlarni izolyatsiyalangan container'larda ishga tushirish imkoniyatini beruvchi platforma bo'lib, bugungi kunda keng qo'llaniladi. Docker container'lari applicationlarni tez va ishonchli ravishda ishga tushirish, deploy qilish va boshqarish uchun ishlatiladi. Container'lar bir xil operatsion tizim kernel'idan foydalangan holda izolyatsiyalangan muhitda applicationlarni ishga tushirish imkonini beradi.

Ushbu qo'llanma Docker bilan ishlashda eng ko'p qo'llaniladigan buyruqlarni o'z ichiga oladi — image'lar bilan ishlash, container'larni boshqarish, network va volume sozlash, Docker Compose, registry bilan ishlash va tizimni tozalash. Bu buyruqlarni tushunib olish sizga Docker bilan samarali ishlashda yordam beradi.

Docker asosiy buyruqlari

docker version

Bu buyruq Docker'ning o'rnatilgan versiyasini tekshirish uchun ishlatiladi. U Docker Client va Server (Docker daemon) haqidagi versiya ma'lumotlarini ko'rsatadi.

docker version

Natijada quyidagi ma'lumotlar ko'rsatiladi:

  • Client va Server versiya raqamlari
  • API versiyasi
  • Git commit raqami
  • Go versiyasi
  • Build sanasi va OS (operatsion tizim)

docker info

Bu buyruq Docker daemon haqida batafsil ma'lumot beradi.

docker info

Natijada quyidagi ma'lumotlar ko'rsatiladi:

  • Docker versiyasi
  • Mavjud container'lar va image'lar soni
  • Docker Engine'ning ishlash holati va memory cheklovlari
  • Network'lar, volume'lar, storage driver'lar haqida ma'lumot

docker --help

Bu buyruq har qanday Docker buyruqlari uchun yordamchi ma'lumot olish uchun ishlatiladi. Agar qaysidir buyruqning barcha parametr va variantlarini bilishni xohlasangiz, ushbu buyruq yordamida qo'shimcha ma'lumot olasiz.

docker --help
 
# Muayyan buyruq uchun yordam
docker run --help
docker build --help


Image'lar bilan ishlash

docker images

Bu buyruq hozirgi tizimda mavjud bo'lgan Docker image'lar ro'yxatini ko'rsatadi.

docker images

Natijada har bir image uchun quyidagi ustunlar ko'rsatiladi:

  • REPOSITORY — image nomi
  • TAG — versiya tag'i
  • IMAGE ID — image'ning unique identifikatori
  • CREATED — yaratilgan vaqti
  • SIZE — hajmi
# Faqat image ID'larini ko'rish
docker images -q
 
# Barcha image'lar (oraliq layer'lar bilan)
docker images -a
 
# Filter bilan
docker images --filter "dangling=true"

docker pull

Bu buyruq Docker Hub yoki boshqa registry'dan image yuklab olish uchun ishlatiladi. Tag ko'rsatilmagan bo'lsa, Docker latest tag'li image'ni avtomatik yuklaydi.

docker pull image-nomi:tag

Natijada:

  • Image layer'larining yuklanishi haqida ma'lumot
  • Yuklanish muvaffaqiyatli bo'lsa, tasdiqlovchi xabar

docker search

Docker Hub'dan image qidirish uchun ishlatiladi.

# Image qidirish
docker search nginx
 
# Faqat official image'lar
docker search --filter is-official=true nginx
 
# Stars soni bo'yicha filter
docker search --filter stars=100 nginx

docker build

Bu buyruq Dockerfile asosida image yaratish uchun ishlatiladi. Bu buyruq Dockerfile joylashgan directory'ni ko'rsatadi va unga asoslangan yangi image'ni yaratadi.

docker build -t image-nomi:tag .

Agar Dockerfile buyruqni ishga tushirayotgan directory'da bo'lmasa, -f flag bilan path beriladi:

docker build -f /path/to/Dockerfile -t image-nomi:tag .

Natijada:

  • Dockerfile'ni o'qish va har bir layer uchun bajarilish holati
  • Image yaratish muvaffaqiyati va identifikatori (sha256)

Foydali flag'lar:

# Build cache'siz yaratish
docker build --no-cache -t image-nomi:tag .
 
# Build argument berish
docker build --build-arg VERSION=1.0 -t image-nomi:tag .
 
# Target stage (multi-stage build)
docker build --target builder -t image-nomi:tag .

docker tag

Bu buyruq image'ga yangi nom va tag berish uchun ishlatiladi. Bu image'ni klonlamaydi, shunchaki yangi nom (reference) beradi.

docker tag image-nomi yangi-image-nomi

# Registry uchun tag berish
docker tag myapp:latest registry.example.com/myapp:v1.0

docker rmi

Bu buyruq image'ni tizimdan o'chirish uchun ishlatiladi. Agar image biron container tomonidan ishlatilayotgan bo'lsa, o'chirib bo'lmaydi.

docker rmi image-nomi:tag

# Majburiy o'chirish (force)
docker rmi -f image-nomi:tag
 
# Bir nechta image o'chirish
docker rmi image1:tag image2:tag
 
# Barcha image'larni o'chirish
docker rmi $(docker images -q)

docker save va docker load

docker save — image'ni .tar arxiv fayli sifatida saqlash uchun ishlatiladi.

docker save -o image-file.tar image-nomi:tag

Bu buyruq ko'pincha internet bo'lmagan (air-gapped) serverlarda image'larni .tar arxiv qilib ko'chirib o'tkazish uchun ishlatiladi.

docker load — oldindan saqlangan .tar faylini qayta Docker image sifatida yuklash uchun ishlatiladi.

docker load -i image-file.tar

# Pipe orqali ham ishlatish mumkin
docker save myapp:latest | gzip > myapp.tar.gz
gunzip -c myapp.tar.gz | docker load

docker history

Bu buyruq image yaratishda ishlatilgan layer'larning tarixini ko'rish imkonini beradi. Har bir layer Dockerfile'ning bir instruksiyasiga mos keladi.

docker history image-nomi:tag

# To'liq buyruqlarni ko'rish (truncate qilmasdan)
docker history --no-trunc image-nomi:tag

docker inspect

Bu buyruq image yoki container haqida batafsil texnik ma'lumot olish uchun ishlatiladi. Natija JSON formatida qaytariladi.

docker inspect image-nomi:tag

# Muayyan ma'lumotni olish (Go template)
docker inspect --format='{{.Config.ExposedPorts}}' image-nomi
 
# Image hajmini ko'rish
docker inspect --format='{{.Size}}' image-nomi

Container'lar bilan ishlash

docker ps

Bu buyruq faol holatdagi container'lar ro'yxatini ko'rsatadi.

docker ps

Natijada siz har bir container uchun ID, IMAGE, COMMAND, CREATED, STATUS, PORTS va NAMES ustunlarini ko'rishingiz mumkin.

Barcha container'larni (faollari va to'xtatilganlari) ko'rsatish uchun -a flag ishlatiladi:

docker ps -a

Natijada to'xtatilgan container'lar ham ko'rsatiladi. Bu holatda redis to'xtatilgan container hisoblanadi.

# Faqat container ID'larini ko'rish
docker ps -q
 
# Oxirgi yaratilgan container
docker ps -l
 
# Filter bilan
docker ps --filter "status=exited"
docker ps --filter "name=redis"
 
# Custom format
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"

docker run

Bu buyruq yangi container'ni image'dan yaratish va ishga tushirish uchun ishlatiladi. Agar image tizimda mavjud bo'lmasa, default holda avval docker pull orqali Docker Hub'dan yuklanadi.

docker run image-nomi:tag

Container yaratiladi va terminal'ga biriktiriladi.

Detached mode (-d)

Container'ni background'da (detach) ishga tushirish uchun -d flag ishlatiladi — terminal bilan bog'lanmagan holda ishlaydi.

docker run -d image-nomi:tag

Container background'da ishga tushadi va terminal'da container ID'si ko'rsatiladi. docker ps orqali ko'rishingiz mumkin.

Interactive mode (-it)

Interactive rejimda container'ni ishga tushiradi va terminal'ni container'ga biriktiradi. Container ichida console ochiladi.

docker run -it image-nomi /bin/bash
# yoki
docker run -it image-nomi /bin/sh

Container ichida interactive sessiya ochiladi, bu orqali container'da buyruqlarni bajarasiz.

Port mapping (-p)

Host portini container portiga ulash:

# host_port:container_port
docker run -d -p 8080:80 nginx
 
# Bir nechta port
docker run -d -p 8080:80 -p 8443:443 nginx
 
# Faqat localhost'da ochish
docker run -d -p 127.0.0.1:8080:80 nginx
 
# Random host port
docker run -d -p 80 nginx

Volume mount (-v)

Container'ga volume ulash:

docker run -v volume:/path image-nomi

Environment variables (-e)

Container ishga tushganda environment variable'lar o'rnatish:

docker run --name mysql-server -e MYSQL_ROOT_PASSWORD=FL20315dl2w132 -d mysql:latest

-e MYSQL_ROOT_PASSWORD=FL20315dl2w132 — MySQL root foydalanuvchisi uchun parolni belgilaydi.

# Bir nechta environment variable
docker run -e DB_HOST=localhost -e DB_PORT=5432 image-nomi
 
# Fayldan environment variable'larni yuklash
docker run --env-file .env image-nomi

--env-file flag juda foydali — production'da parol va secret'larni command line'da ko'rsatmaslik uchun .env fayldan yuklash xavfsizroq.

Name (--name)

Container'ga nom berish:

docker run -d --name my-redis redis:latest

Restart policy (--restart)

Container to'xtab qolsa nima qilish kerakligini belgilaydi:

docker run -d --restart always image-nomi
PolicyTavsif
noRestart qilmaydi (default)
on-failureFaqat xato bilan to'xtasa restart qiladi
on-failure:5Maksimum 5 marta restart qiladi
alwaysHar doim restart qiladi (Docker daemon restart bo'lganda ham)
unless-stoppedalways kabi, lekin qo'lda to'xtatilgan bo'lsa restart qilmaydi

Auto-remove (--rm)

Container to'xtaganda avtomatik o'chiriladi — test va vaqtinchalik ishlar uchun juda foydali:

docker run --rm -it ubuntu:24.04 /bin/bash

Resource limits

Container uchun CPU va memory cheklash:

docker run -d --cpus 2 --memory 512m --memory-swap 1g image-nomi

Murakkab docker run namunalari

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

Bu buyruq bir nechta parametrlar bilan ishlaydi:

  • -d — container'ni background'da ishga tushiradi
  • -p 3000:3000 — lokal mashinaning 3000-portini container'ning 3000-portiga ulaydi
  • --name devops-journey — container'ga "devops-journey" nomini beradi
  • --restart always — container to'xtab qolsa, avtomatik qayta ishga tushiradi
  • devopsjourneyuz/devops-journey-uz:latest — Docker Hub'dan devops-journey-uz:latest image'ni yuklab ishga tushiradi

Volume bilan murakkab namuna:

Bu buyruq bir nechta parametrlar bilan ishlaydi:

  • -d (detach mode) — container'ni background'da ishga tushiradi
  • -p 8081:8081 — lokal host'ning 8081 portini container ichidagi 8081 portiga ulaydi. Bu orqali host tizimingizda http://localhost:8081 manzili orqali container web-interfeysiga kirish mumkin
  • --name nexus — container'ga nexus nomini beradi
  • -v /mnt/nexus-data:/nexus-data — host tizimdagi /mnt/nexus-data directory'sini container ichidagi /nexus-data directory'siga ulaydi. Bu persistent storage'ni ta'minlaydi — container o'chirilganda ham ma'lumotlar saqlanib qoladi
  • sonatype/nexus3 — Nexus Repository Manager'ning 3-versiyasiga tegishli image

docker stop / docker start / docker restart

docker stop — faol container'ni tartibli to'xtatish uchun ishlatiladi. Container'ga SIGTERM signal yuboriladi va graceful shutdown qiladi.

docker stop container-nomi

# Timeout bilan (default 10 soniya)
docker stop -t 30 container-nomi
 
# Bir nechta container'ni to'xtatish
docker stop container1 container2 container3
 
# Barcha container'larni to'xtatish
docker stop $(docker ps -q)

docker start — to'xtatilgan container'ni qayta ishga tushirish uchun ishlatiladi.

docker start container-nomi

Natijada container yana faol holatda ishlay boshlaydi.

docker restart — container'ni qayta ishga tushirish (stop + start) uchun ishlatiladi.

docker restart container-nomi

Natijada container to'xtatiladi va darhol qayta ishga tushiriladi.

docker kill

Container'ni darhol majburiy to'xtatish uchun ishlatiladi. Bu buyruq SIGKILL signal yuboradi — container graceful shutdown qilmasdan to'xtaydi.

docker kill container-nomi

docker stop vs docker kill farqi:

  • docker stopSIGTERM yuboradi, container graceful shutdown qilishi uchun vaqt beradi (default 10s). Agar shu vaqt ichida to'xtamasa, SIGKILL yuboriladi
  • docker kill — darhol SIGKILL yuboradi, container majburan to'xtatiladi
  • Odatda docker stop ishlatiladi. docker kill faqat container javob bermay qolgan holatlarda ishlatiladi

docker rm

To'xtatilgan container'ni tizimdan o'chirish uchun ishlatiladi. Faol container'ni o'chirib bo'lmaydi — avval docker stop yoki docker kill bilan to'xtatish kerak.

docker rm container-nomi

# Majburiy o'chirish (ishlayotgan bo'lsa ham)
docker rm -f container-nomi
 
# Barcha to'xtatilgan container'larni o'chirish
docker rm $(docker ps -aq --filter "status=exited")

docker exec

Ishlayotgan container ichiga kirib buyruqlarni bajarish imkonini beradi. Agar container'da bash yo'q bo'lsa, sh ishlatiladi.

docker exec -it container-nomi /bin/bash
# yoki
docker exec -it container-nomi /bin/sh

Natijada container ichida interactive terminal sessiyasi ochiladi.

# Bitta buyruq bajarish (interactive bo'lmasdan)
docker exec container-nomi ls -la /app
 
# Root sifatida kirish
docker exec -u root -it container-nomi /bin/bash
 
# Environment variable bilan
docker exec -e MY_VAR=hello container-nomi env
 
# Working directory belgilash
docker exec -w /app container-nomi pwd

docker logs

Container'ning log'larini ko'rish imkonini beradi. Application ishlamay qolsa yoki debug qilish kerak bo'lsa, bu buyruq juda kerak.

docker logs container-nomi

Rasmda redis container'i log'lari ko'rsatilgan.

# Real-time log'larni kuzatish (follow)
docker logs -f container-nomi
 
# Oxirgi N qator
docker logs --tail 100 container-nomi
 
# Vaqt bo'yicha filter
docker logs --since 2h container-nomi
docker logs --since "2024-01-01T00:00:00" container-nomi
 
# Timestamp bilan
docker logs -t container-nomi
 
# Follow + tail kombinatsiyasi
docker logs -f --tail 50 container-nomi

docker logs -f — eng ko'p ishlatiladigan variant. Real-time'da container log'larini kuzatish uchun juda foydali. Ctrl+C bilan chiqish mumkin.

docker port

Container'ning port mapping'larini ko'rish uchun:

docker port container-nomi

Natijada container'ning qaysi port'lari host'ning qaysi port'lariga ulanganligi ko'rsatiladi.


Volume'lar bilan ishlash

Volume'lar Docker'da container'larga persistent storage imkonini beradi. Volume'lar container'lar o'chirilganda yoki qayta ishga tushirilganda ham ma'lumotlarni saqlab qoladi.

docker volume ls

Tizimda yaratilgan barcha volume'lar ro'yxatini ko'rsatadi.

docker volume ls

docker volume create

Yangi volume yaratish uchun ishlatiladi.

docker volume create volume-nomi

docker volume rm

Mavjud volume'ni tizimdan o'chirish uchun ishlatiladi. Agar volume biron container tomonidan ishlatilayotgan bo'lsa, o'chirib bo'lmaydi.

docker volume rm volume-nomi

docker volume prune

Foydalanilmayotgan volume'larni o'chiradi. Agar volume biror container tomonidan ishlatilmayotgan bo'lsa, tizimdan olib tashlanadi.

docker volume prune

Barcha volume'larni o'chirish:

docker volume rm $(docker volume ls -q)

docker volume inspect

Volume haqida texnik ma'lumotlar — joylashuvi, mountpoint'lari kabi ma'lumotlarni ko'rsatadi.

docker volume inspect volume-nomi

Volume'ni container'ga ulash

Named volume

Named volume yaratib container'ga ulash — eng tavsiya etiladigan usul:

docker run -v volume-nomi:/data busybox

Bu misolda mysql-volume volume container'dagi /var/lib/mysql directory'siga ulanadi va container'dagi barcha ma'lumotlar volume'da saqlanadi.

Bind mount (Host Path)

Host'dagi directory'ni container'dagi directory'ga ulash uchun bind mount ishlatiladi:

docker run -v /host/path:/container/path image-nomi

Bu holatda host tizimdagi /mnt/nexus-data directory'si container'dagi /nexus-data directory'siga ulanadi. Bind mount yordamida container va host tizim o'rtasida real-time ma'lumot almashinuvini tashkil qilish mumkin.

Named volume vs Bind mount:

  • Named volume — Docker tomonidan boshqariladi, portable, backup qilish oson. Production uchun tavsiya etiladi
  • Bind mount — host filesystem'ga to'g'ridan-to'g'ri bog'lanadi, development'da source code mount qilish uchun qulay
  • Read-only mount: -v /host/path:/container/path:ro — container ichidan faqat o'qish mumkin

Docker Network bilan ishlash

Docker network'lari container'lar orasidagi aloqani ta'minlash va izolyatsiyalangan muhitda applicationlarni ishga tushirish uchun ishlatiladi.

Docker Network'ni yaxshi tushunish uchun quyidagi video qo'llanmani ko'rishni tavsiya qilaman — Docker Networking Tutorial (Bridge - None - Host - IPvlan - Macvlan - Overlay) (opens in a new tab)

Docker network driver'lari

DriverTavsif
bridgeDefault network. Bitta host'dagi container'lar o'zaro aloqa qiladi
hostContainer host'ning network'ini to'g'ridan-to'g'ri ishlatadi (port mapping kerak emas)
noneNetwork'siz. Container tashqi dunyo bilan aloqa qilmaydi
overlayMulti-host network (Docker Swarm). Turli server'lardagi container'lar aloqa qiladi
macvlanContainer'ga o'zining MAC address beriladi, fizik network'ga to'g'ridan-to'g'ri ulanadi

docker network ls

Tizimda mavjud bo'lgan barcha network'lar ro'yxatini ko'rsatadi.

docker network ls

Natijada network'larning NETWORK ID'si, nomi (NAME), turi (DRIVER) va scope'ini ko'rasiz.

docker network create

Yangi network yaratish uchun ishlatiladi.

docker network create network-nomi

# Subnet bilan yaratish
docker network create --subnet=172.20.0.0/16 network-nomi
 
# Driver belgilash
docker network create --driver overlay network-nomi

docker network inspect

Network haqida batafsil texnik ma'lumot beradi — ulangan container'lar ro'yxati va network sozlamalari.

docker network inspect network-nomi

Natijada Docker network'ning JSON formatidagi texnik ma'lumotlari, ulangan container'lar va boshqa tafsilotlarni ko'rishingiz mumkin.

docker network connect / disconnect

Container'ni mavjud network'ga ulash:

docker network connect network-nomi container-nomi

Natijada redis container'i redis-network network'iga ulanadi. docker network inspect network-nomi orqali tekshirishingiz mumkin.

Container'ni network'dan uzish:

docker network disconnect network-nomi container-nomi

Natijada redis container'i redis-network network'idan uziladi.

docker network rm

Foydalanilmayotgan network'ni tizimdan o'chirish uchun ishlatiladi.

docker network rm network-nomi

Container'ni network bilan ishga tushirish

# Muayyan network'da container ishga tushirish
docker run -d --name redis --network my-network redis:latest
 
# Container'ga static IP berish
docker run -d --name redis --network my-network --ip 172.20.0.10 redis:latest

Muhim: Bitta network'dagi container'lar bir-birini container nomi orqali topa oladi (DNS resolution). Masalan, my-network network'ida redis nomli container bor bo'lsa, boshqa container redis:6379 orqali unga ulanishi mumkin.


Docker Compose bilan ishlash

Docker Compose bir nechta service'larni bir vaqtda boshqarish uchun ishlatiladi. Docker Compose yordamida applicationlarning barcha komponentlarini (masalan, web, db, cache) bir joyda boshqarish mumkin.

Docker Compose'ni yaxshi tushunish uchun quyidagi video qo'llanmani ko'rishni tavsiya qilaman — Docker Compose Tutorial for Beginners (Networks - Volumes - Secrets - Postgres - Letsencrypt) (opens in a new tab)

docker compose up

docker-compose.yml fayli asosida barcha service'larni ishga tushiradi. Image'lar yaratilib, container'lar ishga tushiriladi. Bu buyruqni docker-compose.yml fayli bor directory'da ishga tushirish kerak.

docker compose up
 
# Background'da ishga tushirish
docker compose up -d

Natijada docker-compose.yml da yozgan service'laringiz ishga tushganini ko'rishingiz mumkin.

# Faqat muayyan service'ni ishga tushirish
docker compose up -d redis
 
# Image'larni qayta build qilib ishga tushirish
docker compose up -d --build
 
# Scale qilish
docker compose up -d --scale web=3

docker compose down

Barcha service'larni to'xtatadi va ularning container'larini o'chiradi. Network'lar ham o'chiriladi, lekin volume'lar saqlanib qoladi.

docker compose down

# Volume'larni ham o'chirish
docker compose down -v
 
# Image'larni ham o'chirish
docker compose down --rmi all

docker compose ps

Faol holatdagi barcha service container'larini ko'rsatadi.

docker compose ps

docker compose logs

Barcha container'larning log'larini ko'rish imkonini beradi.

docker compose logs

# Real-time follow
docker compose logs -f
 
# Muayyan service log'lari
docker compose logs -f web
 
# Oxirgi N qator
docker compose logs --tail 50

docker compose exec

Muayyan service container'iga kirib buyruqlarni bajarish imkonini beradi.

docker compose exec web /bin/bash

docker compose stop

Barcha service'larni to'xtatish uchun ishlatiladi. Container'lar saqlanadi, lekin service'lar to'xtaydi.

docker compose stop

docker compose build

Service'lar uchun image'larni build qilish:

# Barcha service'larni build qilish
docker compose build
 
# Muayyan service'ni build qilish
docker compose build web
 
# Cache'siz build
docker compose build --no-cache

docker compose pull

Registry'dan image'larni yangilash:

docker compose pull

docker compose config

docker-compose.yml faylini validatsiya qilish va yakuniy konfiguratsiyani ko'rish:

docker compose config

Bu buyruq YAML syntax xatolarini topishda juda foydali.


Docker Registry bilan ishlash

Docker Registry — bu Docker image'larini saqlash, yuklash va ulardan foydalanish uchun mo'ljallangan tizim. Docker Hub eng mashhur public Docker registry hisoblanadi, lekin siz private Docker registry ham o'rnatishingiz mumkin — masalan Harbor, Nexus yoki cloud provider'lar (GCR, ECR, ACR).

docker login

Docker registry'ga kirish uchun ishlatiladi. Login va parol so'raladi.

docker login -u user-name

Private Container Registry uchun:

docker login registry.example.com -u user-name

docker logout

Docker registry'dan chiqish uchun ishlatiladi.

docker logout

docker push

Docker image'ni registry'ga yuklash uchun ishlatiladi. Image nomi registry/repository:tag formatida bo'lishi kerak.

docker push registry/repo-name/image-nomi:tag

Rasmda redis:latest image'ga ismoilovdev/redis-test:latest tag berib Docker Hub'ga push qilish ko'rsatilgan:

Container Registry'ga docker image push qilish:

Docker image'ni push qilganingizdan keyin Container Registry'da paydo bo'lishi kerak — bizning holatda Docker Hub'da:

docker pull (Registry'dan)

Docker registry'dan image yuklab olish uchun ishlatiladi. Tag ko'rsatilmasa, latest tag yuklanadi.

docker pull repo-name/image-nomi:tag

Docker Hub'dan pull qilish:

GCR (Google Container Registry) dan pull qilish — registry-manzili/repo-nomi/image-nomi:tag formatida:


Docker tozalash (Clean up)

Docker tizimida foydalanilmayotgan yoki keraksiz resource'larni tozalash uchun bir nechta buyruqlar mavjud. Ular tizimni optimallashtirish va disk joyini bo'shatish uchun ishlatiladi.

docker system prune

Docker tizimida keraksiz bo'lgan barcha resource'larni — to'xtatilgan container'lar, foydalanilmayotgan image'lar va network'larni tozalash uchun ishlatiladi.

docker system prune

docker container prune

To'xtatilgan barcha container'larni tizimdan o'chiradi.

docker container prune

docker volume prune

Foydalanilmayotgan volume'larni o'chirish uchun ishlatiladi.

docker volume prune

docker image prune

Foydalanilmayotgan image'larni tizimdan o'chiradi.

docker image prune

docker network prune

Foydalanilmayotgan network'larni o'chirish uchun ishlatiladi.

docker network prune

docker system prune -af

Barcha keraksiz resource'larni — container'lar, image'lar, volume'lar va network'larni to'liq tozalash uchun:

  • -a (all) — foydalanilmagan barcha image'larni ham o'chiradi (faqat dangling emas, balki barchasi)
  • -f (force) — tasdiqlash so'rovisiz majburiy bajaradi
docker system prune -af

Bu buyruq diskdagi bo'sh joyni maksimal darajada bo'shatadi, lekin ishlayotgan container'lar va ularga tegishli resource'larga zarar yetkazmaydi.

Ehtiyot bo'ling! docker system prune -af barcha foydalanilmayotgan image'larni o'chiradi. Agar siz image'larni qayta yuklashni xohlamasangiz, avval docker images bilan tekshirib oling.


Boshqa foydali buyruqlar

docker stats

Container'larning ishlash ko'rsatkichlarini real-time'da ko'rish imkonini beradi — CPU, memory, network va disk I/O.

docker stats

# Muayyan container
docker stats container-nomi
 
# Bir marotaba ko'rish (stream qilmasdan)
docker stats --no-stream

docker top

Container ichida ishlayotgan process'larni ko'rsatadi.

docker top container-nomi

docker cp

Container'dan host tizimiga yoki host'dan container'ga fayl va directory'larni copy qilish uchun ishlatiladi.

# Container'dan host'ga
docker cp container-nomi:/app/data /home/user/path
 
# Host'dan container'ga
docker cp /home/user/file.txt container-nomi:/app/

docker rename

Ishlayotgan container'ning nomini o'zgartirish uchun ishlatiladi.

docker rename eski-container-nomi yangi-container-nomi

docker pause / docker unpause

docker pause — container'dagi barcha process'larni vaqtincha to'xtatadi. Process'larga SIGSTOP signal yuboriladi — ular memory'da qoladi, lekin CPU ishlatmaydi.

docker pause container-nomi

docker unpause — vaqtincha to'xtatilgan container'ni qayta tiklaydi. Process'larga SIGCONT signal yuboriladi.

docker unpause container-nomi

docker update

Container ishlayotgan paytda resource limit'larni yangilash uchun ishlatiladi.

docker update --cpus 2 --memory 2g --memory-swap 3g container-nomi

# Restart policy yangilash
docker update --restart unless-stopped container-nomi

docker system df

Docker resource'lari (image'lar, container'lar, network'lar, volume'lar) tomonidan egallangan disk hajmini ko'rish:

docker system df

# Batafsil ma'lumot
docker system df -v

docker diff

Container'da host filesystem'ga nisbatan o'zgargan fayllarni ko'rsatadi:

docker diff container-nomi

Natijada:

  • A — qo'shilgan (Added) fayl
  • C — o'zgartirilgan (Changed) fayl
  • D — o'chirilgan (Deleted) fayl

docker events

Docker daemon event'larini real-time'da kuzatish:

# Real-time event'lar
docker events
 
# Vaqt bo'yicha filter
docker events --since 1h
 
# Container event'lari
docker events --filter type=container

docker wait

Container to'xtagunicha kutadi va exit code'ni qaytaradi:

docker wait container-nomi

Bu buyruq CI/CD pipeline'larda yoki script'larda container ishini kutish uchun foydali.


Qo'shimcha