Key Takeaways
- Izmantojiet oficiālos Docker attēlus, lai uzlabotu drošību un veiktspēju. Pašu attēlu veidošana var izraisīt nepareizu konfigurāciju un aizņem vairāk laika.
- Izmantojiet noteiktas Docker attēlu versijas, lai izvairītos no neparedzamas darbības un sadursmes ar atkarībām. Velciet un veidojiet, izmantojot noteiktas versijas attēlus.
- Skenējiet Docker attēlus drošības ievainojamībām, izmantojot docker skenēšanas komandu. Nosakiet, vai attēls ir pietiekami drošs jūsu lietojumprogrammai.
Docker ir vispopulārākā konteinerizācijas programmatūra, taču ne visi to izmanto efektīvi. Ja neievērojat Docker paraugpraksi, varat atstāt savas lietotnes neaizsargātas pret drošības vai veiktspējas problēmām.
Šeit ir dažas labākās prakses, ko varat izmantot, lai atjautīgi izmantotu Docker funkcijas. Šie pasākumi uzlabo drošību un nodrošina uzturējamu Docker failu izveidi.
1. Izmantojiet oficiālos Docker attēlus
Konteinerējot lietojumprogrammu, ir jāizmanto Docker attēls. Varat izveidot attēlu ar pielāgotu konfigurāciju vai izmantot Docker oficiālos attēlus.
Lai izveidotu savus attēlus, jums pašam ir jārīkojas ar visu konfigurāciju. Piemēram, lai izveidotu attēlu lietojumprogrammai node.js, ir jālejupielādē node.js un tā atkarības. Process ir laikietilpīgs, un tas var nenovest pie pareizas konfigurācijas.
Docker iesaka izmantot oficiālu node.js attēlu, kurā ir visas pareizās atkarības. Docker attēliem ir labāki drošības pasākumi, tie ir viegli un tiek pārbaudīti dažādās vidēs. Oficiālos attēlus varat atrast vietnē Docker oficiālie attēli lappuse.
2. Izmantojiet noteiktas Docker attēla versijas
Parasti, izvelkot oficiālu attēlu, tas ir tas, kuram ir jaunākā atzīme, kas apzīmē šī attēla jaunāko atjaunināto versiju. Katru reizi, kad veidojat konteineru no šī attēla, tā ir cita pēdējā konteinera versija.
Veidojot dažādas Docker attēlu versijas, jūsu lietojumprogrammā var rasties neparedzama darbība. Versijas var saskarties ar citām atkarībām un galu galā izraisīt jūsu lietotnes kļūmi.
Docker iesaka vilkt un veidot, izmantojot noteiktas versijas attēlus. Oficiālajiem attēliem ir arī dokumentācija un tie aptver visbiežāk sastopamos lietošanas gadījumus.
Piemēram, tā vietā docker pull Alpine, izmantojiet docker pull Alpine: 3.18.3. Docker izvilks šo konkrēto versiju. Pēc tam varat to izmantot secīgās būvēs, samazinot kļūdas savā lietojumprogrammā. Konkrētās attēlu versijas varat atrast oficiālajā Docker attēlu lapā, kas atrodas sadaļā Atbalstītie tagi un attiecīgās Dockerfile saites:
3. Skenējiet attēlus, lai atrastu drošības ievainojamības
Kā noteikt, vai attēlam, kuru vēlaties izveidot, nav drošības ievainojamības? Skenējot to. Varat skenēt Docker attēlus, izmantojot docker skenēšanas komandu. Sintakse ir šāda:
docker scan [IMAGE]
Lai skenētu attēlu, vispirms ir jāpiesakās docker.
docker login
Pēc tam skenējiet konkrēto attēlu, kuru vēlaties pārbaudīt:
docker scan ubuntu: latest
Rīks, ko sauc Sink skenē attēlu, uzskaitot visas ievainojamības atbilstoši to nopietnībai. Varat skatīt ievainojamības veidu un saites uz informāciju par to, tostarp to, kā to novērst. Pēc skenēšanas varat noteikt, vai attēls ir pietiekami drošs jūsu lietojumprogrammai.
4. Izmantojiet maza izmēra Docker attēlus
Izvelkot Docker attēlu, tam ir visas sistēmas utilītas. Tas palielina attēla izmēru ar nevajadzīgiem rīkiem.
Lieli Docker attēli aizņem krātuves vietu un var palēnināt konteineru izpildes laiku. Viņiem ir arī lielāka drošības ievainojamību iespēja.
Jūs varat samaziniet Docker attēlu izmērus, izmantojot Alpine attēlus. Alpu attēli ir viegli, un tiem ir tikai nepieciešamie rīki. Tie samazina krātuves vietu, padarot jūsu lietojumprogrammu ātrāku un efektīvāku.
Lielākajai daļai oficiālo attēlu vietnē Docker atradīsit Alpu versiju. Šeit ir PostgreSQL Alpine versiju piemērs:
5. Optimizējiet attēlu slāņu kešatmiņu
Katra komanda Dockerfile apzīmē attēla slāni. Slāņiem ir dažādas utilītas un tie veic dažādas funkcijas. Apskatot oficiālos attēlus vietnē Docker Hub, jūs redzēsit to izveidošanai izmantotos norādījumus.
Dockerfile ietver visu, kas nepieciešams attēla izveidošanai. Tas ir viens no iemesliem, kāpēc daudzi izstrādātāji dod priekšroku Docker, nevis virtuālajām mašīnām.
Tālāk ir norādīta Alpu attēla parauga struktūra.
Veidojot lietojumprogrammu, pamatojoties uz attēlu, attēlam tiek pievienoti vairāk slāņu. Docker izpilda norādījumus Dockerfile no augšas uz leju, un, ja slānis mainās, Docker ir jāpārveido nākamie slāņi.
Labākā prakse ir sakārtot savu Dockerfile no vismazāk mainīgajiem failiem uz tiem, kas mainās visbiežāk. Norādījumi, kas nemainās, piemēram, instalēšana, var būt faila augšdaļā.
Mainot failu, Docker veido no mainītajiem failiem un saglabā virs tā esošos nemainītos failus. Tāpēc process norit ātrāk.
Apskatiet piemēru, kas parādīts attēlā iepriekš. Ja notiek izmaiņas lietojumprogrammu failos, Docker veido no turienes; tai nav atkārtoti jāinstalē npm pakotnes.
Ja veidosiet no attēla, process darbosies ātrāk nekā visu pārējo slāņu atjaunošana no jauna. Kešatmiņa arī paātrina attēlu vilkšanu un nosūtīšanu no Docker Hub.
7. Izmantojiet .dockerignore failu
Veidojot attēlu, izmantojot Dockerfile, iespējams, vēlēsities paturēt noteiktu informāciju privātu. Daži faili un mapes var būt daļa no projekta, taču jūs nevēlaties tos iekļaut veidošanas procesā.
Izmantojot .dockerignore failu, attēla izmērs tiek ievērojami samazināts. Tas ir tāpēc, ka veidošanas procesā ir iekļauti tikai nepieciešamie faili. Tas arī palīdz saglabāt failu privātumu un izvairīties no slepeno atslēgu vai paroļu atklāšanas.
Dockerignore fails ir fails, kuru izveidojat tajā pašā mapē, kurā atrodas jūsu Dockerfile. Tas ir teksta fails, līdzīgi .gitignore fails, kurā ir to failu nosaukumi, kurus nevēlaties iekļaut veidošanas procesā.
Šeit ir piemērs:
8. Izmantojiet vismazāk priviliģētā lietotāja principu
Pēc noklusējuma Docker izmanto root lietotāju kā administratoru atļaujai palaist komandas, taču tā ir slikta prakse. Ja kādā no konteineriem ir ievainojamība, hakeri var piekļūt Docker resursdatoram.
Lai izvairītos no šī scenārija, izveidojiet īpašu lietotāju un grupu. Varat iestatīt vajadzīgās atļaujas grupai, lai aizsargātu sensitīvu informāciju. Ja lietotājs tiek apdraudēts, varat tos izdzēst, neatklājot visu projektu.
Tālāk ir sniegts piemērs, kas parāda, kā izveidot lietotāju un iestatīt viņa atļaujas.
Dažos bāzes attēlos ir izveidoti pseidolietotāji. Varat izmantot instalētos lietotājus, nevis saknes lietotāja atļaujas.
Kāpēc jums vajadzētu pārņemt Docker labāko praksi
Paraugprakse ir lielisks veids, kā samazināt ievainojamības un rakstīt tīrāku kodu. Ir daudz paraugprakses, ko varat lietot katrai izmantotajai Docker funkcijai.
Labi organizēts projekts atvieglo sinhronizāciju ar citiem orķestrēšanas rīkiem, piemēram, Kubernetes. Varat sākt ar rakstā aprakstītajiem un apgūt vairāk, apgūstot Docker.