// IMAGE · CONTAINER · VOLUME · NETWORK · DEPLOY

Docker & Containers

ئۇيغۇرچە تولۇق قوللانما — build، run، compose ۋە deploy workflow

Docker ۋە container تېخنىكىسى modern deployment نىڭ ئاساسىي قوراللىرىنىڭ بىرى. «كودۇم مەندە ئىشلەيدۇ، server دا بولمىدى» دېگەن مەسىلىلەرنى كۆپىنچە containerization ھەل قىلىدۇ. بۇ بەتتە image، container، Dockerfile، volume، network، compose ۋە production deployment نى بىر يەرگە جەملىدۇق.

01 — Container نېمە02 — Image vs Container03 — Dockerfile04 — Volumes05 — Networking06 — Compose07 — Common Commands08 — Deploy
docker-runtime
IMAGE
Read-only Blueprint
filesystem + app + dependencies
CONTAINER
Running Process
image دىن قوزغىتىلغان isolated runtime
VOLUME
Persistent Data
container ئۆچسىمۇ data ساقلىنىدۇ
NETWORK
Service Connectivity
api، db، cache بىر-بىرىنى تاپىدۇ
01
Container دېگەن نېمە؟
Lightweight Isolation for Apps
virtual machine ئەمەس، ئەمما application نى isolate قىلىدۇ
Container — application نى dependencies بىلەن بىرلىكتە ئوراپ، باشقا مۇھىتتا بىر خىل يۈرۈشىنى قوللايدىغان runtime package. VM دەك پۈتۈن OS قا قايتا boot قىلمايدۇ؛ شۇڭا ئادەتتە يېنىكرەك ۋە تېز.
Virtual Machine
full guest OS
heavier
Container
shared kernel
fast startup
Serverless
infra abstracted
less control
02
Image بىلەن Container نىڭ پەرقى
Blueprint vs Running Instance
بۇ ئىككىسىنى ئايرىش Docker نى چۈشىنىشنىڭ ئاچقۇچى
Core 01
Image
read-only template
App code، runtime، libraries ۋە command نى ئۆز ئىچىگە ئالغان immutable snapshot.
Core 02
Container
running process
Image دىن قوزغالغان live instance. Log بار، state بار، process بار.
Core 03
Registry
image warehouse
Docker Hub، GHCR ياكى private registry دا image version لارنى ساقلايسىز.
Core 04
Tag
version label
`latest` قا تايىنىپ قالماڭ. Stable rollout ئۈچۈن semantic ياكى git-sha tag ئىشلىتىڭ.
03
Dockerfile قانداق يېزىلىدۇ؟
Build the Image Intentionally
small image، repeatable build ۋە clear runtime
DOCKERFILEDockerfile
FROM node:20-alpine
WORKDIR /app

COPY package*.json ./
RUN npm ci

COPY . .
RUN npm run build

EXPOSE 3000
CMD ["npm", "start"]
Layer cache نى ياخشى ئىشلىتىش ئۈچۈن package manifest نى ئاۋۋال كۆچۈرۈپ، `npm ci` نى شۇنىڭدىن كېيىن ئىجرا قىلىڭ. Code نى ئەڭ ئاخىرىدا كۆچۈرسىڭىز rebuild تېز بولىدۇ.
04
Volume ۋە Persistent Data
Containers Are Ephemeral, Data Shouldn't Be
container ئۆچسە file system state يوقالالايدۇ
تۈررولىقاچان ئىشلىتىلىدۇنۇقتا
Named VolumeDocker managed storagedatabase، uploaded filesmost common
Bind Mounthost path directlylocal developmenthot reload easy
tmpfsmemory-backedtemporary secrets/cachenot persistent
RUNvolume.sh
docker run -d \
  -p 5432:5432 \
  -v pgdata:/var/lib/postgresql/data \
  postgres:16
05
Container Networking
How Services Find Each Other
api، db، redis نىڭ بىر توردا سۆزلىشىشى
Net 01
Bridge
default local network
كۆپىنچە local containers مۇشۇ توردا يۈرۈپ، service name بىلەن بىر-بىرىنى تاپىدۇ.
Net 02
Port Mapping
host:container
`-p 3000:3000` بولسا host machine دىن container نىڭ ئىچىدىكى port قا كىرىش يولى.
Net 03
Internal Service DNS
db، redis نى ئىسمى بىلەن تاپىدۇ
Compose ياكى user-defined network دا `db:5432` دەپلا ئىشلىتىسىز، IP ئەسلەش لازىم ئەمەس.
Net 04
Least Exposure
ھەممە port نى ئاچماڭ
پەقەت public لىنىيىدە لازىم بولغان port نىلا publish قىلىڭ.
06
Docker Compose بىلەن Multi-Service App
Run the Stack as One Unit
frontend، backend، db نى بىر command بىلەن باشقۇرۇش
YAMLdocker-compose.yml
services:
  web:
    build: .
    ports:
      - "3000:3000"
    depends_on:
      - db

  db:
    image: postgres:16
    environment:
      POSTGRES_PASSWORD: secret
    volumes:
      - pgdata:/var/lib/postgresql/data

volumes:
  pgdata:
Compose development ۋە small deployments ئۈچۈن ناھايىتى ياخشى. ئەمما autoscaling، multi-node orchestration ياكى advanced rollout لازىم بولسا Kubernetes ياكى managed platform قا قاراش كېرەك.
07
ئەڭ كۆپ ئىشلىتىلىدىغان Docker Commands
The Commands You Actually Need
CLI نى چۈشىنىش deployment debugging نى ئاسانلاشتۇرىدۇ
Commandنېمە قىلىدۇقاچان لازىمئىزاھ
docker buildimage ياسايدۇnew releasecore command
docker runcontainer قوزغىتىدۇquick local testsgreat for learning
docker psrunning containersops checkbasic debug
docker logsstdout/stderr كۆرۈشapp failedfirst place to look
docker execcontainer ئىچىگە كىرىدۇinspect runtimeuse carefully
CLIdebug.sh
docker ps
docker logs my-app
docker exec -it my-app sh
docker compose up --build
08
Deploy Checklist
From Laptop to Production
container ياساش بىلەن production-ready بولۇش بىر نەرسە ئەمەس
Deploy
Small Image
image نى ئىخچام تۇت
multi-stage build، `.dockerignore` ۋە minimal base image ئىشلەتسىڭىز pull/build تېزلىشىدۇ.
Deploy
Health Checks
app dead بولسا بىلىنسۇن
platform نىڭ service health check ى بولمىسا crash loop ياكى hung process يوشۇرۇنۇپ قالىدۇ.
Deploy
Secrets
env var نى image غا قىستۇرما
password ياكى API key نى Dockerfile غا يازماڭ. Runtime secrets manager ياكى env injection ئىشلىتىڭ.
Deploy
Logs and Metrics
observability بولسۇن
Containerization debugging نىڭ يېرىمى logs، readiness، resource metrics بىلەن ھەل بولىدۇ.
Containerize first, orchestrate second. ئالدى بىلەن app نى بىر container دا توغرا يۈرگۈزۈپ چىقىڭ، ئاندىن compose، platform ياكى Kubernetes قا ئۆتۈڭ.