Konteynerîzasyon, yek ji pêşkeftinên herî girîng ên di warê belavkirina nermalavê de ye. Bi Docker re, pêşdebiran dikarin sepanên xwe di konteynerên sivik de pak bikin û li her hawîrdorê bêyî pirsgirêk bimeşînin. Li gorî rapora Docker 2024, zêdetirî %70 ên pargîdaniyên Fortune 500 Docker bikar tînin. Ev teknolojî, pêvajoya pêşveçûn-ceribandin-belavkirinê bi tevahî guhertiye.
Konteyner Çi Ye?
Konteyner, yekîneyek standard a nermalavê ye ku kod û hemû girêdayiyên wê di nav pakêtekê de digire da ku sepan bi lez û pêbawer ji hawîrdorek komputerê berbi ya din ve bimeşe. Konteyner ji makîneyên virtual (VM) siviktir in ji ber ku ew kernel a pergala xebitandinê bi hev re parve dikin.
Konteyner vs Makîneya Virtual
| Taybetmendî | Konteyner | Makîneya Virtual |
|---|---|---|
| Mezinahî | MB (10-100 MB) | GB (1-20 GB) |
| Dema Destpêkirinê | Çirke | Deqîqe |
| Îzolasyon | Asta Pêvajoyê | Asta Hardware |
| Performans | Nêzîkê Native | Overhead Heye |
| Hejmara li Hostê | Bi dehan/bi sedan | Bi dehan |
Docker: Bingeha Konteynerîzasyonê
Docker, platforma herî populer a konteynerîzasyonê ye ku di sala 2013-an de hat weşandin. Docker ji pêşdebiran re rê dide ku sepanên xwe di konteynerên standard de ava bikin, biceribînin û belavbikin. Avahiya Docker ji sê hêmanên sereke pêk tê:
Docker Engine
Docker Engine, motora runtime ye ku konteyneran dimeşîne. Ew ji sê beşan pêk tê:
- Docker Daemon (dockerd): Pêvajoya paşzemînê ku wêneyên Docker, konteyneran, torê û cildên hilanînê birêve dibe
- Docker CLI: Navbera rêza fermanê ya ku bikarhêner bi Docker Daemon re têkiliyê dike
- REST API: API ya ku bernameyan dihêle bi daemon re bi bernameyî re têkiliyê bikin
Docker Image (Wêne)
Wêneya Docker, şabloneke tenê-xwendinê ye ku rêwerzên avakirina konteynerê dihewîne. Her wêne ji qatên (layer) hev ser hev pêk tê. Gava hûn wêneyekê diguherin, tenê qatên nû têne zêdekirin û ev jî hilanînê optimîze dike.
Dockerfile: Avakirina Wêneyan
Dockerfile, pelê nivîsê ye ku rêwerzên avakirina wêneya Docker dihewîne. Nimûneyek Dockerfile ya bingehîn:
# Wêneya bingehîn
FROM node:18-alpine
# Peldanka xebatê
WORKDIR /app
# Girêdayiyan saz bike
COPY package*.json ./
RUN npm ci --only=production
# Koda sepanê kopî bike
COPY . .
# Porta sepanê
EXPOSE 3000
# Fermana destpêkirinê
CMD ["node", "server.js"]
Rêwerzên Baş ên Dockerfile
- Wêneya bingehîn a piçûk bikar bînin: Alpine variants (node:18-alpine, python:3.11-alpine)
- Avakirina pir-qonaxî: Ji bo kêmkirina mezinahiya wêneya dawîn
- Qatên cache bikar bînin: Girêdayiyan berî kodê kopî bikin
- Bi kêmtirîn privilege bimeşînin: USER non-root bikar bînin
- .dockerignore bikar bînin: Pelên ne-pêwîst ji kontekstê derxin
Docker Compose: Sepanên Pir-Konteynerî
Docker Compose, amûreke ye ku ji bo danasîn û meşandina sepanên pir-konteynerî tê bikar anîn. Bi pelê docker-compose.yml re, hûn dikarin hemû xizmetên sepana xwe bi yek fermanê ve bidin destpêkirin.
version: '3.8'
services:
web:
build: .
ports:
- "3000:3000"
environment:
- DATABASE_URL=postgres://db:5432/app
depends_on:
- db
- redis
db:
image: postgres:15-alpine
volumes:
- pgdata:/var/lib/postgresql/data
environment:
- POSTGRES_DB=app
- POSTGRES_PASSWORD=secret
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
pgdata:
Fermanên Docker Compose yên herî gelemperî:
docker compose up -d— Hemû xizmetan di paşzemînê de bide destpêkirindocker compose down— Hemû xizmetan rawestîne û jê bibedocker compose logs -f— Logên hemû xizmetan bişopînindocker compose ps— Rewşa hemû xizmetan bibînin
Kubernetes: Orkestrasyon li Pîvanê
Kubernetes (K8s), platforma orkestrasyon a konteyneran e ku Google pêşxist û niha ji hêla Cloud Native Computing Foundation (CNCF) ve tê birêvebirin. Kubernetes ji bo birêvebirina konteyneran li pîvana hilberînê tê bikar anîn.
Hêmanên Sereke yên Kubernetes
- Pod: Yekîneya herî piçûk a belavkirinê — yek an çend konteynerên hevpeyda
- Service: Xala gihîştina torê ya domdar ji bo komek Podan
- Deployment: Rewşa xwestî ya Podan diyar dike û replîkayan birêve dibe
- Namespace: Dabeşkirina mentiqî ya çavkaniyên nav komê
- ConfigMap/Secret: Birêvebirina veavakirinê û daneya hesas
- Ingress: Birêvebirina gihîştina ji derveyî komê
Pîvandina Otomatîk (Auto-scaling)
Kubernetes sê celeb pîvandina otomatîk pêşkêşî dike:
- Horizontal Pod Autoscaler (HPA): Li gorî bikaranîna CPU/bîrê, hejmara Podan zêde/kêm dike
- Vertical Pod Autoscaler (VPA): Çavkaniyên CPU/bîra Podan otomatîk saz dike
- Cluster Autoscaler: Hejmara nodên di komê de li gorî hewcedariyê diguhezîne
CI/CD bi Docker re
Docker, pêvajoya CI/CD (Entegrasyona Berdewam / Belavkirina Berdewam) bi tevahî guhertiye. Bi Docker re, hawîrdorên avakirinê standard in û encamên her cihê yek in.
Pipeline ya CI/CD ya Docker
- Commit: Pêşdebir guhertinan push dike
- Avakirin: CI server wêneya Docker ava dike
- Ceribandin: Testên otomatîk di konteyneran de dimişin
- Scan: Wêne ji bo qelsiyên ewlehiyê tê scan kirin
- Push: Wêne berbi registry (Docker Hub, ECR, GCR) tê push kirin
- Belavkirin: Wêneya nû li hawîrdora armancê tê belavkirin
Nimûneya GitHub Actions
name: Docker CI/CD
on:
push:
branches: [main]
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build Docker image
run: docker build -t app:${{ github.sha }} .
- name: Run tests
run: docker run app:${{ github.sha }} npm test
- name: Push to registry
run: |
docker tag app:${{ github.sha }} registry/app:latest
docker push registry/app:latest
Mîkroxizmet û Docker
Docker, mîmariya mîkroxizmetan pêkan dike. Li şûna sepaneke yekane ya monolîtîk, her xizmet wekî konteynereke serbixwe dimişe. Avantajên vê nêzîkatiyê:
- Pîvandina serbixwe: Her xizmet li gorî hewcedariya xwe tê pîvandin
- Serbixwebûna teknolojiyê: Her xizmet dikare bi zimanê cûda were nivîsandin
- Îzolasyona xeletiyan: Têkçûna yek xizmetê bandorê li hemûyan nake
- Belavkirina serbixwe: Tîmên cuda dikarin bi xizmeta xwe ve bixebitin
Ewlehiya Docker
Ewlehî di Docker de girîng e. Li vir çend rêwerzên baş hene:
- Wêneyên fermî bikar bînin: Ji Docker Hub an registryên pêbawer
- Wêneyan bi rêkûpêk nûve bikin: Ji bo pêçkirina qelsiyên ewlehiyê
- Bi bikarhênerê non-root bimeşînin: Di Dockerfile de
USERdiyar bikin - Sirên xwe yên di wêneyan de nehêlin: Build args an Docker secrets bikar bînin
- Torên taybet bikar bînin: Konteyneran ji torên derve yên ne-pêwîst veqetînin
- Amûrên scanning bikar bînin: Trivy, Snyk, an Docker Scout
TAGUM™ û Konteynerîzasyon
TAGUM™, di hemû projeyên xwe de Docker û konteynerîzasyonê bi aktîfî bikar tîne. Ji PratikEsnaf.Net heta DeskTR, hemû sepanên me bi pipeline yên CI/CD yên Docker-ê ve têne avakirin û belavkirin. Tîma me ya pisporên DevOps, alîkariya we dike da ku hûn jî vê teknolojiyê di binesaziya xwe de bi cih bînin.
Ger hûn dixwazin sepanên xwe konteynerîze bikin an binesaziya Docker/Kubernetes xwe ava bikin, bi me re têkilî daynin.








