01
Container دېگەن نېمە؟
Lightweight Isolation for Apps
virtual machine ئەمەس، ئەمما application نى isolate قىلىدۇ
Container — application نى dependencies بىلەن بىرلىكتە ئوراپ، باشقا مۇھىتتا بىر خىل يۈرۈشىنى قوللايدىغان runtime package. VM دەك پۈتۈن OS قا قايتا boot قىلمايدۇ؛ شۇڭا ئادەتتە يېنىكرەك ۋە تېز.
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
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 Volume | Docker managed storage | database، uploaded files | most common |
| Bind Mount | host path directly | local development | hot reload easy |
| tmpfs | memory-backed | temporary secrets/cache | not persistent |
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 بىلەن باشقۇرۇش
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 build | image ياسايدۇ | new release | core command |
| docker run | container قوزغىتىدۇ | quick local tests | great for learning |
| docker ps | running containers | ops check | basic debug |
| docker logs | stdout/stderr كۆرۈش | app failed | first place to look |
| docker exec | container ئىچىگە كىرىدۇ | inspect runtime | use carefully |
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 قا ئۆتۈڭ.