Kulcs elvitelek

  • Használjon hivatalos Docker-képeket a jobb biztonság és teljesítmény érdekében. A saját képek elkészítése helytelen konfigurációt eredményezhet, és több időt vesz igénybe.
  • Használja a Docker-képfájlok meghatározott verzióit, hogy elkerülje a kiszámíthatatlan viselkedést és a függőségekkel való ütközést. Húzza és építse egy adott verzió képeinek felhasználásával.
  • Vizsgálja meg a Docker-képeket biztonsági réseket keresve a docker scan paranccsal. Határozza meg, hogy egy kép elég biztonságos-e az alkalmazáshoz.

A Docker a legnépszerűbb konténerező szoftver, de nem mindenki használja hatékonyan. Ha nem követi a Docker bevált gyakorlatait, alkalmazásait sebezhetővé teheti biztonsági vagy teljesítményproblémákkal szemben.

Íme néhány bevált módszer, amelyet átvehet a Docker funkcióinak leleményes használatához. Ezek az intézkedések javítják a biztonságot, és biztosítják, hogy karbantartható Docker-fájlokat hozzon létre.

1. Használjon hivatalos Docker képeket

Az alkalmazás konténerbe helyezésekor Docker-képet kell használnia. Készíthet képet egyéni konfigurációval, vagy használhatja a Docker hivatalos képfájljait.

instagram viewer

Saját képek elkészítéséhez saját kezűleg kell kezelnie az összes konfigurációt. Például egy node.js alkalmazás képfájljának létrehozásához le kell töltenie a node.js fájlt és függőségeit. A folyamat időigényes, és nem biztos, hogy az összes megfelelő konfigurációt eredményezi.

A Docker azt javasolja, hogy használjon hivatalos node.js lemezképet, amely az összes megfelelő függőséggel rendelkezik. A Docker képek jobb biztonsági intézkedésekkel rendelkeznek, könnyűek, és különféle környezetekben tesztelték őket. A hivatalos képeket itt találod Docker hivatalos képei oldalon.

2. Használja a Docker Image meghatározott verzióit

Amikor hivatalos képet veszel le, általában az, amelyik a legfrissebb címkével rendelkezik, amely a kép legfrissebb frissített verzióját képviseli. Minden alkalommal, amikor egy tárolót készít ebből a képből, az az utolsó tároló különböző verziója.

A különböző Docker-képverziókkal való építés előre nem látható viselkedést okozhat az alkalmazásban. A verziók ütközhetnek más függőségekkel, és végül az alkalmazás meghibásodását okozhatják.

A Docker azt javasolja, hogy egy adott verzióhoz tartozó képeket húzzon és építsen. A hivatalos képek dokumentációval is rendelkeznek, és lefedik a leggyakoribb használati eseteket.

Például ahelyett dokkoló húzza alpesi, használja docker pull alpesi: 3.18.3. A Docker az adott verziót fogja lehívni. Ezt követően használhatja az egymást követő buildekben, csökkentve ezzel az alkalmazás hibáit. A képek adott verzióit megtalálja a hivatalos Docker képoldalon, a alatt Támogatott címkék és megfelelő Dockerfile hivatkozások:

3. Képek keresése biztonsági résekért

Hogyan állapítható meg, hogy az elkészíteni kívánt kép nem tartalmaz biztonsági rést? Beszkennelve. A Docker-képeket a Docker scan paranccsal szkennelheti be. A szintaxis a következő:

docker scan [IMAGE]

A kép beolvasásához először be kell jelentkeznie a dockerbe.

docker login

Ezután szkennelje be az ellenőrizni kívánt képet:

docker scan ubuntu: latest

Az úgynevezett eszköz Synk beolvassa a képet, és felsorolja az esetleges sebezhetőségeket súlyosságuk szerint. Megtekintheti a sérülékenység típusát és a rá vonatkozó információkra mutató hivatkozásokat, beleértve a javítás módját is. A beolvasásból megállapíthatja, hogy a kép elég biztonságos-e az alkalmazáshoz.

4. Használjon kis méretű Docker képeket

Amikor lehúz egy Docker-lemezképet, az az összes rendszersegéddel együtt érkezik. Ez megnöveli a kép méretét olyan eszközökkel, amelyekre nincs szüksége.

A nagy Docker-képek tárhelyet foglalnak el, és lelassíthatják a tárolók futási idejét. Nagyobb a lehetőségük a biztonsági résekre is.

tudsz csökkentse a Docker-képek méretét az alpesi képek használatával. Az alpesi képek könnyűek, és csak a szükséges eszközöket tartalmazzák. Csökkentik a tárhelyet, így az alkalmazás gyorsabban és hatékonyabban fut.

A Docker hivatalos képeinek többségéhez talál egy alpesi verziót. Íme egy példa a PostgreSQL Alpine verzióira:

5. A gyorsítótárazott képrétegek optimalizálása

A Dockerfile minden parancsa egy réteget képvisel a képen. A rétegek különböző segédprogramokkal rendelkeznek, és különböző funkciókat látnak el. Ha megnézi a hivatalos képeket a Docker Hubon, látni fogja a létrehozásukhoz használt utasításokat.

A Dockerfile mindent tartalmaz, ami a kép létrehozásához szükséges. Ez az egyik oka annak, hogy sokan a fejlesztők a Dockert részesítik előnyben a virtuális gépekkel szemben.

Íme egy példa alpesi kép szerkezete:

Amikor egy kép alapján készíti el az alkalmazást, több réteget ad hozzá a képhez. A Docker felülről lefelé futtatja az utasításokat a Docker-fájlon, és ha egy réteg megváltozik, a Dockernek újra kell építenie a következő rétegeket.

A legjobb gyakorlat az, hogy a Docker-fájlt a legkevésbé változó fájloktól a leggyakrabban változókig rendezi. A változatlan utasítások, például a telepítés, a fájl tetején lehetnek.

Amikor módosít egy fájlt, a Docker a módosított fájlokból épít, és a felette lévő változatlan fájlokat gyorsítótárba helyezi. Ezért a folyamat gyorsabban fut.

Nézze meg a fenti képen látható példát. Ha változás következik be az alkalmazásfájlokban, a Docker onnan épít; nem kell újra telepítenie az npm csomagokat.

Ha a képből épít, akkor a folyamat gyorsabban fog lefutni, mint az összes többi réteg újraépítése. A gyorsítótárazás emellett felgyorsítja a képek Docker Hubból való lehúzását és leküldését.

7. Használjon .dockerignore fájlt

Amikor Docker-fájl segítségével készít egy képet, érdemes bizonyos információkat megőrizni. Egyes fájlok és mappák részei lehetnek a projektnek, de nem kívánja bevonni őket az építési folyamatba.

A .dockerignore fájl használata jelentősen csökkenti a kép méretét. Ennek az az oka, hogy az építési folyamat csak a szükséges fájlokat tartalmazza. Ezenkívül segít megőrizni a fájlok titkosságát, és elkerülni a titkos kulcsok vagy jelszavak felfedését.

A .dockerignore fájl egy olyan fájl, amelyet ugyanabban a mappában hoz létre, mint a Dockerfile. Ez egy szöveges fájl, hasonlóan egy .gitignore fájl, amely tartalmazza azon fájlok nevét, amelyeket nem szeretne bevonni az építési folyamatba.

Íme egy példa:

8. Használja a legkevésbé kiváltságos felhasználó elvét

Alapértelmezés szerint a Docker a root felhasználót használja adminisztrátorként a parancsok futtatásához, de ez rossz gyakorlat. Ha az egyik tárolóban sérülékenység található, a hackerek hozzáférhetnek a Docker gazdagéphez.

Ennek elkerülése érdekében hozzon létre egy dedikált felhasználót és csoportot. Beállíthatja a szükséges engedélyeket a csoport számára az érzékeny információk védelme érdekében. Ha egy felhasználót feltörnek, törölheti őket anélkül, hogy az egész projektet felfedné.

Íme egy példa, amely bemutatja, hogyan hozhat létre felhasználót és állíthatja be az engedélyeit:

Egyes alapképekben pszeudofelhasználók vannak létrehozva. A root felhasználói jogosultságok helyett használhatja a telepített felhasználókat.

Miért érdemes átvenni a Docker legjobb gyakorlatait?

A bevált gyakorlatok nagyszerű módja a sebezhetőség csökkentésének és tisztább kód írásának. Számos bevált módszert alkalmazhat minden használt Docker-funkcióhoz.

Egy jól szervezett projekt megkönnyíti a szinkronizálást más hangszerelési eszközökkel, például a Kubernetes-szel. Kezdheti a cikkben ismertetettekkel, és a Docker elsajátításával többet alkalmazhat.