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.