Mwongozo wa Kuanza Kutumia Docker: Anza Haraka Kutumia Kontena kwa Programu Yako
Mwongozo wa Kuanza Kutumia Docker: Anza Haraka Kutumia Kontena kwa Programu Yako
Docker imekuwa sehemu muhimu ya ukuzaji na upelekaji wa programu za kisasa. Ingawa majadiliano kuhusu Kubernetes yameenea, Docker bado ni zana inayopendelewa na kampuni nyingi kwa ajili ya kujenga, kujaribu na kupeleka programu. Makala haya yatakuelekeza haraka katika kuanza kutumia Docker, kuelewa dhana zake za msingi, na kutoa mfano wa vitendo ili kukusaidia kuanza kutumia kontena kwa programu yako.
Dhana Muhimu za Docker
Kabla ya kuanza kufanya mazoezi, ni muhimu kuelewa dhana kadhaa za msingi za Docker:
-
Picha (Image): Picha ni kiolezo cha kusoma tu ambacho kina kila kitu kinachohitajika ili kuendesha programu: msimbo, mazingira ya utekelezaji, zana za mfumo, maktaba na vitegemezi. Inafanana na picha ya mashine pepe, lakini ni nyepesi zaidi.
-
Kontena (Container): Kontena ni mfano unaoendeshwa ulioundwa kutoka kwa picha. Ni mfano wa wakati wa utekelezaji wa picha, unaojumuisha programu na vitegemezi vyake vyote. Kontena zimetengwa kutoka kwa kila moja, zina mfumo wao wa faili, michakato na nafasi ya mtandao.
-
Docker Hub: Docker Hub ni hifadhi ya umma ya picha, ambapo unaweza kupakua picha zilizojengwa awali, au kupakia picha zako mwenyewe. Inafanana na GitHub, lakini imejitolea kwa picha za Docker.
-
Dockerfile: Dockerfile ni faili ya maandishi ambayo ina maagizo yote ya kujenga picha ya Docker. Kwa kuandika Dockerfile, unaweza kujiendesha mchakato wa kuunda picha.
-
Docker Compose: Docker Compose ni zana ya kufafanua na kuendesha programu za Docker zenye kontena nyingi. Inakuruhusu kutumia faili ya YAML kusanidi huduma za programu, kisha utumie amri moja kuanzisha au kusimamisha huduma zote.
Usakinishaji wa Docker
Kwanza, unahitaji kusakinisha Docker. Docker hutoa vifurushi vya usakinishaji kwa mifumo mbalimbali ya uendeshaji. Tembelea Tovuti Rasmi ya Docker, na ufuate maagizo yanayolingana ili kusakinisha.
Baada ya usakinishaji kukamilika, unaweza kutumia amri docker --version ili kuthibitisha kuwa Docker imesakinishwa kwa usahihi.
Kuweka Kontena kwa Programu Rahisi ya Python
Tutaunda programu rahisi ya Python, na tutatumia Docker kuiweka kwenye kontena.
1. Unda Programu ya Python
Unda faili inayoitwa app.py, iliyo na msimbo ufuatao:
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')
Programu hii rahisi ya Flask itarudisha "Hello, Docker!" kwenye njia ya msingi /.
2. Unda Faili ya requirements.txt
Programu inategemea maktaba ya Flask, tunahitaji kuunda faili ya requirements.txt ili kutangaza vitegemezi hivi.
Flask
3. Unda Dockerfile
Unda faili inayoitwa Dockerfile, na uongeze yaliyomo yafuatayo:
# Tumia picha rasmi ya Python kama picha ya msingi
FROM python:3.9-slim-buster
# Weka saraka ya kazi
WORKDIR /app
# Nakili faili ya requirements.txt kwenye saraka ya kazi
COPY requirements.txt .
# Sakinisha vitegemezi
RUN pip install --no-cache-dir -r requirements.txt
# Nakili msimbo wa programu kwenye saraka ya kazi
COPY app.py .
# Weka wazi bandari 5000
EXPOSE 5000
# Bainisha amri ya kuanzisha
CMD ["python", "app.py"]
Maelezo ya Dockerfile:
FROM python:3.9-slim-buster: Hutaja picha msingi kama toleo lililorahisishwa la Python 3.9.WORKDIR /app: Huweka saraka ya kazi ndani ya kontena kuwa/app.COPY requirements.txt .: Hunakili faili yarequirements.txtkutoka saraka ya sasa hadi saraka ya/appya kontena.RUN pip install --no-cache-dir -r requirements.txt: Huendesha amri yapipndani ya kontena ili kusakinisha vitegemezi vilivyobainishwa kwenye faili yarequirements.txt. Parameta ya--no-cache-dirinaweza kupunguza ukubwa wa picha.COPY app.py .: Hunakili faili yaapp.pykutoka saraka ya sasa hadi saraka ya/appya kontena.EXPOSE 5000: Hutangaza kuwa kontena itasikiliza bandari ya 5000.CMD ["python", "app.py"]: Hufafanua amri ya kutekelezwa wakati kontena inapoanzishwa.
4. Unda Picha ya Docker
Katika saraka iliyo na Dockerfile, endesha amri ifuatayo ili kuunda picha ya Docker:
docker build -t my-python-app .
docker build: Amri ya kuunda picha.-t my-python-app: Hutaja jina la picha (my-python-app)..: Hutaja saraka ambapo Dockerfile iko (saraka ya sasa).
Utaratibu wa uundaji unaweza kuchukua muda, kulingana na kasi ya mtandao na ukubwa wa vitegemezi.
5. Endesha Kontena ya Docker
Tumia amri ifuatayo kuendesha kontena ya Docker:
docker run -d -p 5000:5000 my-python-app
docker run: Amri ya kuendesha kontena.-d: Huendesha kontena katika hali ya kujitenga (inaendesha chinichini).-p 5000:5000: Hupanga bandari ya 5000 ya mwenyeji hadi bandari ya 5000 ya kontena.my-python-app: Hutaja jina la picha ya kutumia.
6. Thibitisha Programu
Tembelea http://localhost:5000 kwenye kivinjari, unapaswa kuona "Hello, Docker!".
7. Simamisha na Uondoe Kontena
Tumia amri ifuatayo kusimamisha kontena:
docker stop
`` inaweza kutazamwa kwa amri ya docker ps.
Tumia amri ifuatayo kuondoa kontena:
docker rm
Kuanza na Docker Compose
Ikiwa programu yako inajumuisha huduma nyingi, unaweza kutumia Docker Compose kuzisimamia.
1. Unda faili ya docker-compose.yml
Unda faili inayoitwa docker-compose.yml na uongeze yaliyomo yafuatayo:
version: "3.9"
services:
web:
image: my-python-app
ports:
- "5000:5000"
Maelezo ya docker-compose.yml:* version: "3.9": Huainisha toleo la faili ya Docker Compose.
services: Hufafanua huduma za programu.web: Hufafanua huduma inayoitwa "web".image: my-python-app: Huainisha picha (image) inayotumiwa na huduma.ports: Hufafanua ramani za bandari (port mapping).
2. Anzisha Programu
Kwenye saraka iliyo na faili ya docker-compose.yml, endesha amri ifuatayo ili kuanzisha programu:
docker-compose up -d
docker-compose up: Amri ya kuanzisha programu.-d: Huendesha kontena katika hali iliyotenganishwa (detached mode).
3. Simamisha Programu
Tumia amri ifuatayo kusimamisha programu:
docker-compose down
Mbinu Bora za Usalama za Docker
Kama inavyoonekana kutoka kwenye majadiliano, usalama wa picha za Docker (Docker images) ni suala muhimu. Hapa kuna mbinu bora za usalama za Docker:
- Tumia Picha Rasmi: Tumia picha zinazotolewa rasmi iwezekanavyo, kwani picha hizi hupitia uchunguzi wa usalama na matengenezo.
- Changanua Picha kwa Ajili ya Udhaifu: Tumia zana kama Trivy kuchanganua picha kwa ajili ya udhaifu unaojulikana, na usasishe picha mara kwa mara.
- Tumia Kanuni ya Haki Ndogo Zaidi: Epuka kuendesha kontena kama mtumiaji mkuu (root).
- Zuia Rasilimali za Kontena: Tumia cgroups kuzuia matumizi ya CPU na kumbukumbu ya kontena.
- Sasisha Picha Mara kwa Mara: Weka picha zikiwa zimesasishwa ili kurekebisha udhaifu wa usalama.
- Tumia Zana za Kuchanganua Usalama: Zana kama Snyk, Clair, n.k., zinaweza kuunganishwa katika mchakato wako wa CI/CD ili kuchanganua udhaifu wa picha kiotomatiki.





