Sobes.tech
Junior

Millistel põhijoonustel põhineb Docker?

sobes.tech AI

Vastus AI-lt

Docker'i põhijooned:

  • Protsesside isolatsioon: Konteinerid on oma olemuselt üksteisest ja host-süsteemist isoleeritud. Seda tagab Linuxi kerneli mehhanismide kasutamine, nagu namespaces (PID, NET, IPC, MNT, UTS) ja cgroups (ressursside piiramiseks CPU, mälu, I/O).

  • Pildid (Images): Docker pilt on muutumatu, kihiline artefakt, mis sisaldab kõike, mida rakenduse käivitamiseks on vaja: koodi, teeke, sõltuvusi, tööriistu ja konfiguratsioonifaile. Pildid ehitatakse põhimõtte "kihid peale kihte" alusel, mis võimaldab jagada ühiseid komponente ja ruumi kokku hoida.

  • Konteinerid (Containers): Konteiner on pildi täidetav eksemplar. See on kerge, kaasaskantav ja sisaldab käivitatud rakendust. Konteinerid saab kiiresti käivitada, peatada, teisaldada ja skaleerida.

  • Dockerfile: Dockerfile on fail, mis sisaldab juhiste kogumit, kirjeldades Docker pildi loomise protsessi. See on deklaratiivne lähenemine piltide loomisel, mis tagab korduvuse ja automatiseerimise.

    # Näide Dockerfile-st
    FROM alpine:3.14 // Põhupilt
    RUN apk add --no-cache nginx // Pakettide installimine
    COPY html/ /usr/share/nginx/html/ // Failide kopeerimine
    EXPOSE 80 // Pordi avamine
    CMD ["nginx", "-g", "daemon off;"] // Käsk konteineri käivitamisel
    
  • Kihiline failisüsteem (Layered Filesystem): Docker kasutab Union File Systems (AUFS, OverlayFS), mis võimaldavad luua pilte kihistest. Iga kiht on muudatuste kogum võrreldes eelneva kihiga. See omadus võimaldab kiiresti pilte luua, vahemälu kihte ja tõhusalt kasutada kettaruumi.

  • Docker registrid (Registry/Hub): Docker registrid (näiteks Docker Hub, GCR, ACR) kasutatakse Docker piltide salvestamiseks ja levitamiseks. See võimaldab jagada pilte arendajate, meeskondade ja keskkondade vahel.

  • Portatiivsus: Pildid ja konteinerid on disainitud olema portatiivsed. Ühes platvormis loodud pilt saab käivitada teisel platvormil, kus Docker on installitud, ilma sõltuvuste ümberkonfigureerimiseta.

  • Kiire käivitamine: Konteineri käivitamine on märkimisväärselt kiirem kui virtuaalmasina käivitamine, kuna ei ole vaja laadida kogu operatsioonisüsteemi.

  • Tõhus ressursside kasutus: Konteinerid kasutavad host-süsteemi ressursse tõhusamalt kui virtuaalmasinad, kuna nad ei nõua eraldi operatsioonisüsteemi tuuma.