Key Takeaways

  • Norėdami užtikrinti didesnį saugumą ir našumą, naudokite oficialius „Docker“ vaizdus. Kuriant savo vaizdus gali būti neteisinga konfigūracija ir tai užtruks ilgiau.
  • Naudokite konkrečias Docker vaizdų versijas, kad išvengtumėte nenuspėjamo elgesio ir susidūrimų su priklausomybėmis. Ištraukite ir kurkite naudodami konkrečios versijos vaizdus.
  • Nuskaitykite „Docker“ vaizdus ir ieškokite saugos spragų naudodami „Docker“ nuskaitymo komandą. Nustatykite, ar vaizdas yra pakankamai saugus jūsų programai.

„Docker“ yra populiariausia konteinerių surinkimo programinė įranga, tačiau ne visi ją naudoja efektyviai. Jei nesilaikysite geriausios „Docker“ praktikos, galite palikti savo programas pažeidžiamas dėl saugos ar našumo problemų.

Štai keletas geriausių praktikų, kurias galite pritaikyti norėdami išradingai naudoti „Docker“ funkcijas. Šios priemonės pagerina saugumą ir užtikrina, kad sukursite prižiūrimus Docker failus.

1. Naudokite oficialius „Docker“ vaizdus

Sudėdami programą į konteinerius, turite naudoti „Docker“ vaizdą. Galite sukurti vaizdą naudodami tinkintą konfigūraciją arba naudoti oficialius „Docker“ vaizdus.

instagram viewer

Kurdami savo vaizdus, ​​​​reikia patys atlikti visą konfigūraciją. Pavyzdžiui, norėdami sukurti node.js programos vaizdą, turite atsisiųsti node.js ir jo priklausomybes. Procesas užima daug laiko ir gali nebūti visos tinkamos konfigūracijos.

„Docker“ rekomenduoja naudoti oficialų node.js vaizdą, kuriame yra visos tinkamos priklausomybės. „Docker“ vaizdai turi geresnes saugos priemones, yra lengvi ir išbandomi įvairiose aplinkose. Oficialias nuotraukas galite rasti Oficialūs Docker vaizdai puslapį.

2. Naudokite konkrečias Docker Image versijas

Paprastai, kai ištraukiate oficialų vaizdą, jis su naujausia žyma atitinka naujausią atnaujintą to vaizdo versiją. Kiekvieną kartą, kai sukuriate sudėtinį rodinį iš to vaizdo, tai yra skirtinga paskutinio sudėtinio rodinio versija.

Kūrimas naudojant skirtingas „Docker“ vaizdo versijas gali sukelti nenuspėjamą jūsų programos veikimą. Versijos gali nesutapti su kitomis priklausomybėmis ir galiausiai suges jūsų programa.

„Docker“ rekomenduoja traukti ir kurti naudojant konkrečios versijos vaizdus. Oficialūs vaizdai taip pat turi dokumentus ir apima dažniausiai pasitaikančius naudojimo atvejus.

Pavyzdžiui, vietoj dokeris traukti alpine, naudoti dokeris traukimas alpine: 3.18.3. „Docker“ ištrauks tą konkrečią versiją. Tada galėsite jį naudoti nuosekliuose versijose, sumažindami programos klaidas. Konkrečias vaizdų versijas galite rasti oficialiame „Docker“ vaizdo puslapyje Palaikomos žymos ir atitinkamos „Dockerfile“ nuorodos:

3. Nuskaitykite vaizdus ir ieškokite saugos spragų

Kaip nustatyti, kad vaizdas, kurį norite sukurti, neturi saugumo spragų? Jį nuskaitydami. Galite nuskaityti „Docker“ vaizdus naudodami „Docker“ nuskaitymo komandą. Sintaksė yra tokia:

docker scan [IMAGE]

Norėdami nuskaityti vaizdą, pirmiausia turite prisijungti prie doko.

docker login

Tada nuskaitykite konkretų vaizdą, kurį norite patikrinti:

docker scan ubuntu: latest

Įrankis vadinamas Sink nuskaito vaizdą ir išvardija visas spragas pagal jų sunkumą. Galite matyti pažeidžiamumo tipą ir nuorodas į informaciją apie jį, įskaitant tai, kaip jį ištaisyti. Iš nuskaitymo galite pasakyti, ar vaizdas yra pakankamai saugus jūsų programai.

4. Naudokite mažo dydžio Docker vaizdus

Kai ištraukiate „Docker“ vaizdą, jis pateikiamas su visomis sistemos priemonėmis. Tai padidina vaizdo dydį naudojant jums nereikalingus įrankius.

Dideli Docker vaizdai užima saugyklos vietą ir gali sulėtinti konteinerių veikimo laiką. Jie taip pat turi didesnę saugumo spragų tikimybę.

Tu gali sumažinti Docker vaizdų dydį naudodami Alpių vaizdus. Alpių vaizdai yra lengvi ir pateikiami tik su būtinomis priemonėmis. Jie sumažina saugyklos vietą, todėl jūsų programa veikia greičiau ir efektyviau.

Daugeliui oficialių „Docker“ vaizdų rasite Alpių versiją. Štai Alpine PostgreSQL versijų pavyzdys:

5. Optimizuokite talpyklos vaizdo sluoksnius

Kiekviena „Dockerfile“ komanda reiškia vaizdo sluoksnį. Sluoksniai turi skirtingas paslaugas ir atlieka įvairias funkcijas. Jei pažvelgsite į oficialius vaizdus „Docker Hub“, pamatysite instrukcijas, naudojamas jiems sukurti.

„Dockerfile“ apima viską, ko reikia vaizdui sukurti. Tai viena iš priežasčių, kodėl daugelis kūrėjai teikia pirmenybę „Docker“, o ne virtualioms mašinoms.

Štai pavyzdinio Alpių vaizdo struktūra:

Kai kuriate programą pagal vaizdą, prie vaizdo pridedate daugiau sluoksnių. „Docker“ vykdo instrukcijas „Dockerfile“ iš viršaus į apačią, o jei sluoksnis pasikeičia, „Docker“ turi iš naujo sukurti tolesnius sluoksnius.

Geriausia praktika yra tvarkyti savo Dockerfile nuo mažiausiai besikeičiančių failų iki tų, kurie keičiasi dažniausiai. Nesikeičiančios instrukcijos, pvz., diegimas, gali būti failo viršuje.

Kai pakeičiate failą, „Docker“ sukuria iš pakeistų failų ir saugo virš jo esančius nepakeistus failus. Todėl procesas vyksta greičiau.

Pažvelkite į pavyzdį, iliustruotą aukščiau esančiame paveikslėlyje. Jei programos failai pasikeičia, „Docker“ sukuria iš ten; jam nereikia dar kartą įdiegti npm paketų.

Jei kursite pagal vaizdą, procesas vyks greičiau, nei iš naujo sukursite visus kitus sluoksnius. Talpykla taip pat pagreitina vaizdų ištraukimą ir perkėlimą iš „Docker Hub“.

7. Naudokite .dockerignore failą

Kurdami vaizdą naudodami Dockerfile, galbūt norėsite išlaikyti tam tikrą informaciją privačią. Kai kurie failai ir aplankai gali būti projekto dalis, tačiau nenorite jų įtraukti į kūrimo procesą.

Naudojant .dockerignore failą, labai sumažėja vaizdo dydis. Taip yra todėl, kad kūrimo procesas apima tik būtinus failus. Tai taip pat padeda išlaikyti failus privačius ir išvengti slaptų raktų ar slaptažodžių atskleidimo.

.dockerignore failas yra failas, kurį sukuriate tame pačiame aplanke kaip ir jūsų Dockerfile. Tai tekstinis failas, panašiai kaip .gitignore failą, kuriame yra failų, kurių nenorite įtraukti į kūrimo procesą, pavadinimai.

Štai pavyzdys:

8. Naudokite mažiausiai privilegijuoto vartotojo principą

Pagal numatytuosius nustatymus „Docker“ naudoja root naudotoją kaip administratorių, kad gautų leidimą vykdyti komandas, tačiau tai yra bloga praktika. Jei viename iš konteinerių yra pažeidžiamumas, įsilaužėliai gali pasiekti „Docker“ pagrindinį kompiuterį.

Norėdami išvengti šio scenarijaus, sukurkite tam skirtą vartotoją ir grupę. Galite nustatyti reikiamus leidimus grupei, kad apsaugotumėte neskelbtiną informaciją. Jei vartotojas pažeidžiamas, galite juos ištrinti neatskleidę viso projekto.

Štai pavyzdys, kaip sukurti vartotoją ir nustatyti jo leidimus:

Kai kuriuose baziniuose vaizduose yra sukurti pseudovartotojai. Vietoj root vartotojo teisių galite naudoti įdiegtus vartotojus.

Kodėl turėtumėte naudoti „Docker“ geriausią praktiką

Geriausia praktika yra puikus būdas sumažinti pažeidžiamumą ir parašyti švaresnį kodą. Yra daug geriausios praktikos, kurią galite pritaikyti kiekvienai naudojamai Docker funkcijai.

Gerai organizuotas projektas palengvina sinchronizavimą su kitais orkestravimo įrankiais, pvz., „Kubernetes“. Galite pradėti nuo tų, kurie aprašyti straipsnyje, ir pritaikyti daugiau, kai išmoksite „Docker“.