Hagaha Bilowga Docker: Si Degdeg ah Ugu Bilow Codsiyadaada Ku Jirta Weelasha
# Hagaha Bilowga Docker: Si Degdeg ah Ugu Bilow Codsiyadaada Ku Jirta Weelasha
Docker waxa uu noqday qayb muhiim ah oo ka mid ah horumarinta software-ka casriga ah iyo geynta. In kasta oo doodaha ku saabsan Kubernetes ay aad u badan yihiin, Docker ayaa weli ah qalabka ugu horreeya ee shirkado badan ay u isticmaalaan dhisidda, tijaabinta, iyo geynta codsiyada. Maqaalkani waxa uu ku geyn doonaa bilow degdeg ah oo ku saabsan Docker, waxa uu kaa caawin doonaa in aad fahamto fikradaha aasaasiga ah, waxana uu ku siin doonaa tusaale wax ku ool ah oo kaa caawinaya in aad bilowdo codsiyadaada ku jirta weelasha.
## Fikradaha Aasaasiga ah ee Docker
Kahor intaadan bilaabin ku dhaqanka, waxaa muhiim ah in la fahmo qaar ka mid ah fikradaha aasaasiga ah ee Docker:
* **Sawirka (Image):** Sawirku waa template akhris-kaliya ah, oo ay ku jiraan wax kasta oo loo baahan yahay si loo socodsiiyo codsiga: koodhka, deegaanka socodka, qalabka nidaamka, maktabadaha, iyo ku tiirsanaanta. Waxay la mid tahay sawirka mashiinka farsamada, laakiin aad ayey u fudud tahay.
* **Weelka (Container):** Weelku waa tusaale socda oo laga abuuray sawir. Waa tusaale socodka sawirka, oo ay ku jiraan codsiga iyo dhammaan ku tiirsanaantiisa. Weelasha ayaa midba midka kale laga soocaa, waxayna leeyihiin fayl-gareyntooda, hababkooda, iyo meelaha shabakadooda.
* **Docker Hub:** Docker Hub waa bakhaar sawir oo dadweyne, waxaad ka soo dejisan kartaa sawirro horay loo dhisay, waxaadna soo geli kartaa sawirradaada. Waxay la mid tahay GitHub, laakiin waxay si gaar ah ugu talogashay sawirrada Docker.
* **Dockerfile:** Dockerfile waa fayl qoraal ah, oo ay ku jiraan dhammaan tilmaamaha lagu dhisayo sawirka Docker. Adiga oo qoraya Dockerfile, waxaad otomaatig u samayn kartaa habka abuurista sawirka.
* **Docker Compose:** Docker Compose waa qalab loo isticmaalo in lagu qeexo oo lagu socodsiiyo codsiyada Docker ee weelal badan leh. Waxay kuu ogolaaneysaa inaad isticmaasho faylka YAML si aad u habayso adeegyada codsiga, ka dibna aad isticmaasho hal amar si aad u bilowdo ama u joojiso dhammaan adeegyada.
## Rakibaadda Docker
Marka hore, waxaad u baahan tahay inaad rakibto Docker. Docker waxa uu bixiyaa xirmooyin rakibaad oo loogu talagalay nidaamyada hawlgalka ee kala duwan. Booqo [Mareegta Rasmiga ah ee Docker](https://www.docker.com/get-started/), raac tilmaamaha u dhigma si aad u rakibto.
Ka dib marka rakibaadda la dhammeeyo, waxaad xaqiijin kartaa in Docker si sax ah loo rakibay adiga oo socodsiinaya amarka `docker --version`.
## Ku ridista Weelka Codsi Python oo Fudud
Waxaan abuuri doonaa codsi Python oo fudud, waxaanan u isticmaali doonaa Docker si aan ugu ridno weel.
### 1. Abuur Codsi Python
Abuur fayl la yiraahdo `app.py`, oo ay ku jiraan koodhka soo socda:
```python
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello, Docker!"
if __name__ == "__main__":
app.run(debug=True, host='0.0.0.0')
Codsigan Flask ee fudud waxa uu ku soo celin doonaa "Hello, Docker!" jidka xididka /.
2. Abuur Faylka requirements.txt
Codsigu waxa uu ku tiirsan yahay maktabadda Flask, waxaanu u baahanahay in aan abuurno faylka requirements.txt si aan u sheegno ku tiirsanaantaas.
Flask
3. Abuur Dockerfile
Abuur fayl la yiraahdo Dockerfile, oo ku dar waxyaabaha soo socda:
# Isticmaal sawirka Python ee rasmiga ah sida sawirka saldhigga
FROM python:3.9-slim-buster
# Deji galka shaqada
WORKDIR /app
# Ku koobi faylka requirements.txt galka shaqada
COPY requirements.txt .
# Ku rakib ku tiirsanaanta
RUN pip install --no-cache-dir -r requirements.txt
Ku koobiga koodhka codsiga galka shaqada
COPY app.py .
Soo bandhig dekedda 5000
EXPOSE 5000
Qeex amarka bilowga
CMD ["python", "app.py"]
**Sharaxaada Dockerfile:**
* `FROM python:3.9-slim-buster`: Waxay tilmaamaysaa sawirka saldhigga inuu yahay nooca la soo koobay ee Python 3.9.
* `WORKDIR /app`: Waxay dejisaa galka shaqada ee gudaha konteenarka inuu yahay `/app`.
* `COPY requirements.txt .`: Waxay ku koobiyaysaa faylka `requirements.txt` ee ku jira galka hadda jira galka `/app` ee konteenarka.
* `RUN pip install --no-cache-dir -r requirements.txt`: Waxay ku socodsiisaa amarka `pip` gudaha konteenarka si loo rakibo ku tiirsanaanta lagu cayimay faylka `requirements.txt`. Halbeegga `--no-cache-dir` wuxuu yareyn karaa cabbirka sawirka.
* `COPY app.py .`: Waxay ku koobiyaysaa faylka `app.py` ee ku jira galka hadda jira galka `/app` ee konteenarka.
* `EXPOSE 5000`: Waxay ku dhawaaqaysaa in konteenarku uu dhegaysan doono dekedda 5000.
* `CMD ["python", "app.py"]`: Waxay qeexaysaa amarka la fulinayo marka konteenarka la bilaabayo.
### 4. Dhis Sawirka Docker
Galka ku jira `Dockerfile`, ku socodsii amarka soo socda si aad u dhisto sawirka Docker:
```bash
docker build -t my-python-app .
docker build: Amarka lagu dhisayo sawirka.-t my-python-app: Waxay u qeexaysaa magac sawirka (my-python-app)..: Waxay tilmaamaysaa galka uu ku yaal Dockerfile (galka hadda jira).
Hannaanka dhismaha ayaa qaadan kara waqti, iyadoo ku xiran xawaaraha shabakadda iyo cabbirka ku tiirsanaanta.
5. Socodsii Konteenarka Docker
Isticmaal amarka soo socda si aad u socodsiiso konteenarka Docker:
docker run -d -p 5000:5000 my-python-app
docker run: Amarka lagu socodsiinayo konteenarka.-d: Waxay ku socodsiisaa konteenarka qaab gooni ah (waxay ku socodsiisaa gadaasha).-p 5000:5000: Waxay khariidadeysaa dekedda 5000 ee martigeliyaha dekedda 5000 ee konteenarka.my-python-app: Waxay tilmaamaysaa magaca sawirka ee la isticmaalayo.
6. Xaqiiji Codsiga
Ka booqo http://localhost:5000 biraawsarkaaga, waa inaad aragtaa "Hello, Docker!"
7. Jooji oo Tirtir Konteenarka
Isticmaal amarka soo socda si aad u joojiso konteenarka:
docker stop
`` Waxaa lagu eegi karaa amarka docker ps.
Isticmaal amarka soo socda si aad u tirtirto konteenarka:
docker rm
Hordhac Docker Compose
Haddii codsigaagu ka kooban yahay adeegyo badan, waxaad isticmaali kartaa Docker Compose si aad u maamusho.
1. Abuur Faylka docker-compose.yml
Abuur fayl la yiraahdo docker-compose.yml, oo ku dar waxyaabaha soo socda:
version: "3.9"
services:
web:
image: my-python-app
ports:
- "5000:5000"
Sharaxaada docker-compose.yml:* version: "3.9": Waxay qeexaysaa nooca faylka Docker Compose.
services: Waxay qeexaysaa adeegyada codsiga.web: Waxay qeexaysaa adeeg la yiraahdo "web".image: my-python-app: Waxay qeexaysaa sawirka uu adeeggu isticmaalayo.ports: Waxay qeexaysaa khariidadaha dekedda (port mappings).
2. Bilowga Codsiga
Ku dhex orod amarka soo socda galka ku jira faylka docker-compose.yml si aad u bilowdo codsiga:
docker-compose up -d
docker-compose up: Amarka lagu bilaabayo codsiga.-d: Ku orod weelka (container) qaab gooni ah (detached mode).
3. Joojinta Codsiga
Isticmaal amarka soo socda si aad u joojiso codsiga:
docker-compose down
Hababka Ugu Fiican ee Amniga Docker
Sida laga arki karo doodda, amniga sawirrada Docker waa arrin muhiim ah. Waa kuwan qaar ka mid ah hababka ugu fiican ee amniga Docker:
- Isticmaal Sawirrada Rasmiga ah: Sida ugu macquulsan, isticmaal sawirrada rasmiga ah ee la bixiyay, kuwaas oo badanaa la mariyay iskaanka amniga oo la dayactiro.
- Baadh nuglaanta Sawirka: Isticmaal qalab sida Trivy si aad u baarto nuglaanta laga yaabo in laga helo sawirrada, oo si degdeg ah u cusbooneysii sawirrada.
- Isticmaal Mabaadi'da Ogolaanshaha Ugu Yar: Ka fogow inaad ku oroddo weelka (container) adigoo ah isticmaale root ah.
- Xaddid Kheyraadka Weelka: Isticmaal cgroups si aad u xaddiddo isticmaalka CPU iyo xusuusta ee weelka.
- Si Joogto ah u Cusbooneysii Sawirrada: Ka dhig sawirrada kuwo cusub si aad u hagaajisid nuglaanta amniga.
- Isticmaal Qalabka Baadhista Amniga: Qalabka sida Snyk, Clair iwm, waxaa lagu dari karaa habkaaga CI/CD, si toos ah u baadh nuglaanta sawirka.
Gabagabo
Maqaalkani waxa uu bixinayaa hordhac degdeg ah oo ku saabsan Docker, isaga oo daboolaya fikradaha asaasiga ah, tallaabooyinka rakibaadda, iyo tusaale fudud oo ah codsi Python ah oo la geliyay konteenar. Barashada aqoontan aasaasiga ah, waxaad bilaabi kartaa isticmaalka Docker si aad u dhisto, u tijaabiso, oo aad u daabacdo codsiyadaada. Xusuusnow, amnigu aad ayuu muhiim u yahay, had iyo jeer fiiro gaar ah u yeelo amniga sawirada Docker, oo qaad tallaabooyin habboon si aad u ilaaliso codsiyadaada. In kasta oo Kubernetes ay awood u leedahay habaynta konteenarada ee baaxadda weyn, Docker weli waa xal fudud oo wax ku ool ah xaalado badan. Barashada Docker, waxaad si fiican ula qabsan kartaa caqabadaha horumarinta iyo daabacaadda software-ka casriga ah.





