Sobes.tech
Junior

Mit használnak egy Docker konténeren belül?

sobes.tech MI

Válasz az MI-től

A Docker konténer számos technológiát használ a folyamatok és erőforrások izolálására:

  • Linux kernel névterek: Különböző rendszererőforrások izolálását biztosítják, például:

    • PID (Folyamatazonosító): Elkülönítik a folyamatokat.
    • Net (Hálózat): Elkülönítik a hálózati stack-et.
    • Mount (mnt): Elkülönítik a fájlrendszer csatolási pontjait.
    • UTS (Unix Timesharing System): Elkülönítik a hosztnevet és a domain nevet.
    • IPC (Interprocess Communication): Elkülönítik a folyamatok közötti kommunikáció mechanizmusait.
    • User (Felhasználó és csoport azonosító): Elkülönítik a felhasználói és csoport azonosítókat.
  • Konténer csoportok (cgroups): Kezelik és korlátozzák a hardver erőforrások használatát a konténeren belüli folyamatok számára, beleértve:

    • CPU: A processzoridő használatának korlátozása.
    • Memory: A RAM használatának korlátozása.
    • Block I/O: A lemez bemenet/kimenet sávszélességének korlátozása.
    • Net I/O: A hálózati bemenet/kimenet sávszélességének korlátozása.
  • Unió fájlrendszerek: Egyesített fájlrendszert biztosítanak, amely több rétegből áll. A Docker olyan fájlrendszereket használ, mint az OverlayFS, AUFS, Btrfs, ZFS. Ez lehetővé teszi az image-ek hatékony tárolását és csak a változásokhoz tartozó rétegek létrehozását.

  • Docker démon folyamat: Kezeli a konténerek életciklusát (létrehozás, indítás, leállítás, törlés).

  • Konténer futási környezet: Alacsony szintű végrehajtás a konténer számára. A Docker különböző futtatókörnyezeteket használt és támogat, például a runc (OCI specifikáció), containerd.

  • Konténer kép: Olyan fájlrendszer rétegek és metaadatok összessége, amelyek szükségesek az alkalmazás futtatásához.

  • Alkalmazás: Futtatható kód, könyvtárak, függőségek és konfigurációs fájlok, amelyek a programot alkotják, és a konténeren belül működnek.

Lényegében a konténer egy elszigetelt folyamat (vagy folyamatok csoportja), amely egy korlátozott környezetben fut, amit a Linux kernel biztosít, és amit a Docker kezel.