Docker: Vodnik za začetnike: Hitro začnite s kontejnerizacijo vaše aplikacije

2/18/2026
6 min read

Docker: Vodnik za začetnike: Hitro začnite s kontejnerizacijo vaše aplikacije

Docker je postal nepogrešljiv del sodobnega razvoja in uvajanja programske opreme. Kljub poplavi razprav o Kubernetesu, je Docker še vedno orodje prve izbire za mnoga podjetja za gradnjo, testiranje in uvajanje aplikacij. Ta članek vas bo hitro uvedel v Docker, vam predstavil njegove ključne koncepte in vam ponudil praktičen primer, ki vam bo pomagal začeti s kontejnerizacijo vaše aplikacije.

Docker: Ključni koncepti

Preden začnete s prakso, je bistveno razumeti nekaj ključnih konceptov Dockerja:

  • Slika (Image): Slika je predloga samo za branje, ki vsebuje vse, kar je potrebno za zagon aplikacije: kodo, izvajalno okolje, sistemska orodja, knjižnice in odvisnosti. Podobna je sliki virtualnega stroja, vendar je lažja.

  • Kontejner (Container): Kontejner je izvajalna instanca, ustvarjena iz slike. Je izvajalna instanca slike, ki vsebuje aplikacijo in vse njene odvisnosti. Kontejnerji so med seboj izolirani in imajo svoj datotečni sistem, procese in omrežni prostor.

  • Docker Hub: Docker Hub je javno skladišče slik, iz katerega lahko prenesete vnaprej zgrajene slike ali naložite svoje. Podoben je GitHubu, vendar je namenjen Docker slikam.

  • Dockerfile: Dockerfile je besedilna datoteka, ki vsebuje vsa navodila za gradnjo Docker slike. Z zapisovanjem Dockerfile lahko avtomatizirate postopek ustvarjanja slike.

  • Docker Compose: Docker Compose je orodje za definiranje in zagon večkontejnerskih Docker aplikacij. Omogoča vam, da konfigurirate storitve aplikacije z datoteko YAML, nato pa z enim samim ukazom zaženete ali ustavite vse storitve.

Namestitev Dockerja

Najprej morate namestiti Docker. Docker ponuja namestitvene pakete za različne operacijske sisteme. Obiščite Docker uradno spletno stran in sledite ustreznim navodilom za namestitev.

Po namestitvi lahko preverite, ali je Docker pravilno nameščen, tako da zaženete ukaz docker --version.

Kontejnerizacija preproste Python aplikacije

Ustvarili bomo preprosto Python aplikacijo in jo kontejnerizirali z Dockerjem.

1. Ustvarjanje Python aplikacije

Ustvarite datoteko z imenom app.py, ki vsebuje naslednjo kodo:

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')

Ta preprosta aplikacija Flask bo na korenski poti / vrnila "Hello, Docker!".

2. Ustvarjanje datoteke requirements.txt

Aplikacija je odvisna od knjižnice Flask, zato moramo ustvariti datoteko requirements.txt, da deklariramo te odvisnosti.

Flask

3. Ustvarjanje Dockerfile

Ustvarite datoteko z imenom Dockerfile in dodajte naslednjo vsebino:

# Uporabi uradno Python sliko kot osnovno sliko
FROM python:3.9-slim-buster

# Nastavi delovni direktorij
WORKDIR /app

# Kopiraj datoteko requirements.txt v delovni direktorij
COPY requirements.txt .

# Namesti odvisnosti
RUN pip install --no-cache-dir -r requirements.txt
```# 将应用程序代码复制到工作目录
COPY app.py .

# 暴露端口 5000
EXPOSE 5000

# 定义启动命令
CMD ["python", "app.py"]

Dockerfile 说明:

  • FROM python:3.9-slim-buster: Določi osnovno sliko kot poenostavljeno različico Python 3.9.
  • WORKDIR /app: Nastavi delovni imenik znotraj kontejnerja na /app.
  • COPY requirements.txt .: Kopira datoteko requirements.txt iz trenutnega imenika v imenik /app znotraj kontejnerja.
  • RUN pip install --no-cache-dir -r requirements.txt: Zažene ukaz pip znotraj kontejnerja za namestitev odvisnosti, navedenih v datoteki requirements.txt. Parameter --no-cache-dir lahko zmanjša velikost slike.
  • COPY app.py .: Kopira datoteko app.py iz trenutnega imenika v imenik /app znotraj kontejnerja.
  • EXPOSE 5000: Izjavi, da bo kontejner poslušal na vratih 5000.
  • CMD ["python", "app.py"]: Določi ukaz, ki se bo izvedel ob zagonu kontejnerja.

4. Zgradite Docker sliko

V imeniku, ki vsebuje Dockerfile, zaženite naslednji ukaz za izgradnjo Docker slike:

docker build -t my-python-app .
  • docker build: Ukaz za izgradnjo slike.
  • -t my-python-app: Določi ime slike (my-python-app).
  • .: Določi imenik, kjer se nahaja Dockerfile (trenutni imenik).

Postopek izgradnje lahko traja nekaj časa, odvisno od hitrosti omrežja in velikosti odvisnosti.

5. Zaženite Docker kontejner

Uporabite naslednji ukaz za zagon Docker kontejnerja:

docker run -d -p 5000:5000 my-python-app
  • docker run: Ukaz za zagon kontejnerja.
  • -d: Zažene kontejner v ločenem načinu (teče v ozadju).
  • -p 5000:5000: Preslika vrata 5000 gostitelja na vrata 5000 kontejnerja.
  • my-python-app: Določi ime slike, ki jo želite uporabiti.

6. Preverite aplikacijo

V brskalniku obiščite http://localhost:5000 in videti bi morali "Hello, Docker!".

7. Ustavite in izbrišite kontejner

Uporabite naslednji ukaz za ustavitev kontejnerja:

docker stop 

`` Lahko preverite z ukazom docker ps.

Uporabite naslednji ukaz za izbris kontejnerja:

docker rm 

Uvod v Docker Compose

Če je vaša aplikacija sestavljena iz več storitev, jih lahko upravljate z Docker Compose.

1. Ustvarite datoteko docker-compose.yml

Ustvarite datoteko z imenom docker-compose.yml in dodajte naslednjo vsebino:

version: "3.9"
services:
  web:
    image: my-python-app
    ports:
      - "5000:5000"

docker-compose.yml 说明:

  • version: "3.9": Določa različico datoteke Docker Compose.
  • services: Definira storitve aplikacije.
  • web: Definira storitev z imenom "web".
  • image: my-python-app: Določa sliko, ki jo storitev uporablja.
  • ports: Definira preslikave vrat.

2. Zagon aplikacije

V imeniku, ki vsebuje datoteko docker-compose.yml, zaženite naslednji ukaz za zagon aplikacije:

docker-compose up -d
  • docker-compose up: Ukaz za zagon aplikacije.
  • -d: Zažene posodo v ločenem načinu (detached mode).

3. Ustavitev aplikacije

Uporabite naslednji ukaz za ustavitev aplikacije:

docker-compose down

Docker Varnostne Najboljše Prakse

Kot je razvidno iz razprave, je varnost slik Docker pomembno vprašanje. Sledi nekaj Docker varnostnih najboljših praks:

  • Uporaba uradnih slik: Kolikor je mogoče, uporabljajte uradno ponujene slike, ki so običajno pregledane glede varnosti in vzdrževane.
  • Skeniranje ranljivosti slik: Uporabite orodja, kot je Trivy, za skeniranje znanih ranljivosti v slikah in jih pravočasno posodobite.
  • Uporaba načela najmanjših privilegijev: Izogibajte se zagonu posod kot root uporabnik.
  • Omejevanje virov posode: Uporabite cgroups za omejevanje uporabe CPU in pomnilnika posode.
  • Redno posodabljanje slik: Vzdržujte posodobljenost slik, da popravite varnostne ranljivosti.
  • Uporaba orodij za varnostno skeniranje: Orodja, kot so Snyk, Clair itd., je mogoče integrirati v vaš proces CI/CD za samodejno skeniranje ranljivosti slik.

ZaključekTa članek ponuja hiter uvod v Docker, ki zajema temeljne koncepte, korake namestitve in preprost primer kontejnerizacije aplikacije Python. Z učenjem teh osnov lahko začnete uporabljati Docker za gradnjo, testiranje in uvajanje svojih aplikacij. Ne pozabite, da je varnost ključnega pomena, zato bodite vedno pozorni na varnost slik Docker in sprejmite ustrezne ukrepe za zaščito svojih aplikacij. Čeprav je Kubernetes zmogljiv pri orkestraciji kontejnerjev v velikem obsegu, je Docker v mnogih primerih še vedno preprosta in učinkovita rešitev. Z obvladovanjem Dockerja se boste lahko bolje spopadli z izzivi sodobnega razvoja in uvajanja programske opreme.

Published in Technology

You Might Also Like