Docker įvadas: greitai pradėkite konteinerizuoti savo programą

2/18/2026
5 min read

Docker įvadas: greitai pradėkite konteinerizuoti savo programą

Docker tapo neatsiejama šiuolaikinio programinės įrangos kūrimo ir diegimo dalimi. Nors diskusijos apie Kubernetes yra visur, Docker vis dar yra pageidaujamas įrankis daugeliui įmonių kuriant, testuojant ir diegiant programas. Šis straipsnis padės jums greitai pradėti naudoti Docker, suprasti pagrindines jo sąvokas ir pateiks praktinį pavyzdį, padėsiantį pradėti konteinerizuoti savo programą.

Pagrindinės Docker sąvokos

Prieš pradedant praktiškai, būtina suprasti keletą pagrindinių Docker sąvokų:

  • Atvaizdas (Image): Atvaizdas yra tik skaitymui skirtas šablonas, kuriame yra viskas, ko reikia programai paleisti: kodas, vykdymo aplinka, sistemos įrankiai, bibliotekos ir priklausomybės. Panašus į virtualios mašinos atvaizdą, bet lengvesnis.

  • Konteineris (Container): Konteineris yra veikiantis egzempliorius, sukurtas iš atvaizdo. Tai yra atvaizdo vykdymo laiko egzempliorius, kuriame yra programa ir visos jos priklausomybės. Konteineriai yra izoliuoti vienas nuo kito, turi savo failų sistemą, procesus ir tinklo erdvę.

  • Docker Hub: Docker Hub yra vieša atvaizdų saugykla, iš kurios galite atsisiųsti iš anksto sukurtus atvaizdus arba įkelti savo. Panašus į GitHub, bet skirtas tik Docker atvaizdams.

  • Dockerfile: Dockerfile yra tekstinis failas, kuriame yra visos instrukcijos, kaip sukurti Docker atvaizdą. Rašydami Dockerfile, galite automatizuoti atvaizdo kūrimo procesą.

  • Docker Compose: Docker Compose yra įrankis, skirtas apibrėžti ir paleisti kelių konteinerių Docker programas. Tai leidžia jums konfigūruoti programos paslaugas naudojant YAML failą, o tada paleisti arba sustabdyti visas paslaugas viena komanda.

Docker diegimas

Pirmiausia turite įdiegti Docker. Docker siūlo diegimo paketus įvairioms operacinėms sistemoms. Apsilankykite Docker oficialioje svetainėje ir vykdykite atitinkamas instrukcijas, kad įdiegtumėte.

Įdiegę galite patikrinti, ar Docker įdiegtas teisingai, paleisdami komandą docker --version.

Paprastos Python programos konteinerizavimas

Sukurkime paprastą Python programą ir konteinerizuokime ją naudodami Docker.

1. Python programos kūrimas

Sukurkite failą pavadinimu app.py su šiuo kodu:

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

Ši paprasta Flask programa grąžins "Hello, Docker!" pagrindiniu keliu /.

2. requirements.txt failo kūrimas

Programa priklauso nuo Flask bibliotekos, todėl turime sukurti requirements.txt failą, kad deklaruotume šias priklausomybes.

Flask

3. Dockerfile kūrimas

Sukurkite failą pavadinimu Dockerfile ir pridėkite šį turinį:

# Naudokite oficialų Python atvaizdą kaip pagrindinį atvaizdą
FROM python:3.9-slim-buster

# Nustatykite darbinį katalogą
WORKDIR /app

# Nukopijuokite requirements.txt failą į darbinį katalogą
COPY requirements.txt .

# Įdiekite priklausomybes
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: Nurodo bazinį atvaizdą kaip Python 3.9 supaprastintą versiją.
  • WORKDIR /app: Nustato darbinį katalogą konteineryje kaip /app.
  • COPY requirements.txt .: Nukopijuoja requirements.txt failą iš dabartinio katalogo į konteinerio /app katalogą.
  • RUN pip install --no-cache-dir -r requirements.txt: Vykdo pip komandą konteineryje, kad įdiegtų priklausomybes, nurodytas requirements.txt faile. --no-cache-dir parametras gali sumažinti atvaizdo dydį.
  • COPY app.py .: Nukopijuoja app.py failą iš dabartinio katalogo į konteinerio /app katalogą.
  • EXPOSE 5000: Deklaruoja, kad konteineris klausys 5000 prievado.
  • CMD ["python", "app.py"]: Apibrėžia komandą, kuri bus vykdoma paleidžiant konteinerį.

4. Kurkite Docker atvaizdą

Katalogo, kuriame yra Dockerfile, viduje paleiskite šią komandą, kad sukurtumėte Docker atvaizdą:

docker build -t my-python-app .
  • docker build: Komanda, skirta kurti atvaizdą.
  • -t my-python-app: Nurodo atvaizdo pavadinimą (my-python-app).
  • .: Nurodo katalogą, kuriame yra Dockerfile (dabartinis katalogas).

Atvaizdo kūrimo procesas gali užtrukti šiek tiek laiko, priklausomai nuo tinklo greičio ir priklausomybių dydžio.

5. Paleiskite Docker konteinerį

Naudokite šią komandą, kad paleistumėte Docker konteinerį:

docker run -d -p 5000:5000 my-python-app
  • docker run: Komanda, skirta paleisti konteinerį.
  • -d: Paleidžia konteinerį atjungtu režimu (veikia fone).
  • -p 5000:5000: Susieja pagrindinio kompiuterio 5000 prievadą su konteinerio 5000 prievadu.
  • my-python-app: Nurodo atvaizdo pavadinimą, kurį norite naudoti.

6. Patikrinkite programą

Naršyklėje apsilankykite adresu http://localhost:5000 ir turėtumėte pamatyti "Hello, Docker!".

7. Sustabdykite ir pašalinkite konteinerį

Naudokite šią komandą, kad sustabdytumėte konteinerį:

docker stop 

`` Galima peržiūrėti naudojant docker ps komandą.

Naudokite šią komandą, kad pašalintumėte konteinerį:

docker rm 

Docker Compose įvadas

Jei jūsų programą sudaro kelios paslaugos, galite naudoti Docker Compose, kad jas valdytumėte.

1. Sukurkite docker-compose.yml failą

Sukurkite failą pavadinimu docker-compose.yml ir įtraukite šį turinį:

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

docker-compose.yml 说明:

  • version: "3.9": Nurodo Docker Compose failo versiją.
  • services: Apibrėžia programos paslaugas.
  • web: Apibrėžia paslaugą pavadinimu "web".
  • image: my-python-app: Nurodo paslaugos naudojamą atvaizdą.
  • ports: Apibrėžia prievadų susiejimą.

2. Programos paleidimas

Kataloge, kuriame yra docker-compose.yml failas, paleiskite šią komandą, kad paleistumėte programą:

docker-compose up -d
  • docker-compose up: Komanda, skirta paleisti programą.
  • -d: Paleidžia konteinerį atskiru režimu.

3. Programos sustabdymas

Norėdami sustabdyti programą, naudokite šią komandą:

docker-compose down

Geriausia Docker saugos praktika

Kaip matyti iš diskusijos, Docker atvaizdų saugumas yra svarbus klausimas. Štai keletas geriausių Docker saugos praktikų:

  • Naudokite oficialius atvaizdus: Jei įmanoma, naudokite oficialiai pateiktus atvaizdus, kurie paprastai yra nuskaitomi dėl saugumo ir prižiūrimi.
  • Nuskaitykite atvaizdų pažeidžiamumus: Naudokite tokius įrankius kaip Trivy, kad nuskaitytumėte atvaizduose žinomus pažeidžiamumus ir laiku atnaujintumėte atvaizdus.
  • Naudokite mažiausių privilegijų principą: Venkite paleisti konteinerius kaip root vartotojas.
  • Apribokite konteinerių išteklius: Naudokite cgroups, kad apribotumėte konteinerių CPU ir atminties naudojimą.
  • Reguliariai atnaujinkite atvaizdus: Palaikykite atvaizdus atnaujintus, kad pataisytumėte saugos pažeidžiamumus.
  • Naudokite saugos nuskaitymo įrankius: Tokie įrankiai kaip Snyk, Clair ir kt. gali būti integruoti į jūsų CI/CD procesą, kad automatiškai nuskaitytų atvaizdų pažeidžiamumus.

IšvadaŠiame straipsnyje pateikiamas greitas Docker pradžiamokslis, apimantis pagrindines sąvokas, diegimo veiksmus ir paprastą Python programos konteinerizavimo pavyzdį. Išmokę šiuos pagrindus, galite pradėti naudoti Docker savo programų kūrimui, testavimui ir diegimui. Atminkite, kad saugumas yra labai svarbus, visada atkreipkite dėmesį į Docker atvaizdų saugumą ir imkitės atitinkamų priemonių savo programoms apsaugoti. Nors Kubernetes yra galingas didelio masto konteinerių orkestravimo įrankis, Docker daugeliu atvejų vis dar yra paprastas ir efektyvus sprendimas. Įvaldę Docker, galėsite geriau susidoroti su šiuolaikinio programinės įrangos kūrimo ir diegimo iššūkiais.

Published in Technology

You Might Also Like