Võtmed kaasavõtmiseks

  • Parema turvalisuse ja jõudluse tagamiseks kasutage ametlikke Dockeri pilte. Oma piltide loomine võib põhjustada vale konfiguratsiooni ja võtta rohkem aega.
  • Kasutage Dockeri piltide konkreetseid versioone, et vältida ettearvamatut käitumist ja kokkupõrkeid sõltuvustega. Tõmmake ja ehitage, kasutades konkreetse versiooni pilte.
  • Dockeri skannimiskäsku kasutades kontrollige Dockeri kujutisi turvaaukude tuvastamiseks. Tehke kindlaks, kas pilt on teie rakenduse jaoks piisavalt turvaline.

Docker on kõige populaarsem konteineriseerimistarkvara, kuid mitte kõik ei kasuta seda tõhusalt. Kui te ei järgi Dockeri parimaid tavasid, võite jätta oma rakendused turvaprobleemide või jõudlusprobleemide suhtes haavatavaks.

Siin on mõned parimad tavad, mida saate kasutada Dockeri funktsioonide leidlikuks kasutamiseks. Need meetmed parandavad turvalisust ja tagavad hooldatavate Dockeri failide loomise.

1. Kasutage ametlikke Dockeri pilte

Rakenduse konteinerisse paigutamisel peate kasutama Dockeri pilti. Saate luua kohandatud konfiguratsiooniga pildi või kasutada Dockeri ametlikke pilte.

instagram viewer

Enda piltide loomine eeldab, et kogu konfiguratsiooniga peate ise hakkama. Näiteks rakenduse node.js jaoks pildi loomiseks peate alla laadima faili node.js ja selle sõltuvused. Protsess on aeganõudev ja ei pruugi anda kogu õiget konfiguratsiooni.

Docker soovitab kasutada ametlikku node.js-pilti, millel on kõik õiged sõltuvused. Dockeri piltidel on paremad turvameetmed, need on kerged ja neid testitakse erinevates keskkondades. Ametlikud pildid leiate aadressilt Dockeri ametlikud pildid lehel.

2. Kasutage Dockeri pildi konkreetseid versioone

Tavaliselt on ametliku pildi tõmbamisel see, millel on uusim silt, mis esindab selle pildi viimast värskendatud versiooni. Iga kord, kui loote selle pildi põhjal konteineri, on see viimase konteineri erinev versioon.

Erinevate Dockeri pildiversioonidega ehitamine võib teie rakenduses põhjustada ettearvamatut käitumist. Versioonid võivad põrkuda muude sõltuvustega ja lõpuks põhjustada teie rakenduse tõrke.

Docker soovitab teil tõmmata ja luua konkreetse versiooni kujutisi. Ametlikel piltidel on ka dokumentatsioon ja need hõlmavad levinumaid kasutusjuhtumeid.

Näiteks selle asemel docker pull alpi, kasutage docker pull alpi: 3.18.3. Docker tõmbab selle konkreetse versiooni. Seejärel saate seda kasutada järjestikustes ehitustes, vähendades rakenduse vigu. Kujutiste konkreetsed versioonid leiate Dockeri ametlikult pildilehelt Toetatud sildid ja vastavad Dockerfile'i lingid:

3. Skannige pilte turvaaukude leidmiseks

Kuidas teha kindlaks, et pildil, mida soovite luua, pole turvaauke? Skaneerides seda. Saate skannida Dockeri pilte, kasutades käsku Docker scan. Süntaks on järgmine:

docker scan [IMAGE]

Pildi skannimiseks peate esmalt dokkerisse sisse logima.

docker login

Seejärel skannige konkreetne pilt, mida soovite kontrollida:

docker scan ubuntu: latest

Tööriist nimega Synk skannib pilti, loetledes kõik haavatavused nende raskusastme järgi. Näete haavatavuse tüüpi ja linke selle kohta teabele, sealhulgas selle parandamise kohta. Skannimisel saate aru, kas pilt on teie rakenduse jaoks piisavalt turvaline.

4. Kasutage väikese suurusega Dockeri pilte

Kui tõmbate Dockeri kujutise, on sellega kaasas kõik süsteemiutiliidid. See suurendab pildi suurust tööriistadega, mida te ei vaja.

Suured Dockeri pildid võtavad salvestusruumi ja võivad aeglustada konteinerite tööaega. Neil on ka suurem turvaaukude võimalus.

Sa saad vähendada Dockeri piltide suurust, kasutades Alpine pilte. Alpipildid on kerged ja kaasas ainult vajalikud tööriistad. Need vähendavad salvestusruumi, muutes teie rakenduse kiiremaks ja tõhusamaks.

Enamiku Dockeri ametlike piltide jaoks leiate Alpine versiooni. Siin on PostgreSQL-i Alpine versioonide näide:

5. Optimeerige vahemällu salvestamise pildikihte

Iga käsk Dockerfile'is tähistab pildi kihti. Kihtidel on erinevad utiliidid ja need täidavad erinevaid funktsioone. Kui vaatate Docker Hubi ametlikke pilte, näete nende loomiseks kasutatud juhiseid.

Dockerfile sisaldab kõike, mida vajate pildi loomiseks. See on üks põhjusi, miks paljud arendajad eelistavad Dockerit virtuaalmasinatele.

Siin on Alpi pildi näite struktuur:

Kui loote rakenduse pildi põhjal, lisate pildile rohkem kihte. Docker käitab Dockerfile'i juhiseid ülalt alla ja kui kiht muutub, peab Docker järgmised kihid uuesti üles ehitama.

Parim tava on korraldada oma Dockerfile kõige vähem muutuvatest failidest kõige sagedamini muutuvate failideni. Juhised, mis ei muutu, nagu installimine, võivad olla faili ülaosas.

Kui muudate faili, loob Docker muudetud failidest ja salvestab selle kohal olevad muutmata failid vahemällu. Seetõttu kulgeb protsess kiiremini.

Vaadake ülaloleval pildil illustreeritud näidet. Kui rakendusfailides on muudatusi, ehitab Docker sealt; see ei pea npm-pakette uuesti installima.

Kui ehitate pildi põhjal, kulgeb protsess kiiremini kui kõigi teiste kihtide uuesti ülesehitamine. Vahemällu salvestamine kiirendab ka piltide tõmbamist ja lükkamist Docker Hubist.

7. Kasutage .dockerignore faili

Kujutise loomisel Dockerfile'i abil võiksite teatud teabe privaatsena hoida. Mõned failid ja kaustad võivad olla osa projektist, kuid te ei soovi neid koostamisprotsessi kaasata.

Dockerignore-faili kasutamine vähendab oluliselt pildi suurust. Seda seetõttu, et ehitusprotsess hõlmab ainult vajalikke faile. Samuti aitab see hoida faile privaatsena ja vältida salajaste võtmete või paroolide paljastamist.

Dockerignore fail on fail, mille loote Dockerfile'iga samasse kausta. See on tekstifail, umbes nagu .gitignore fail, mis sisaldab nende failide nimesid, mida te ei soovi koostamisprotsessi kaasata.

Siin on näide:

8. Kasutage vähim privilegeeritud kasutaja põhimõtet

Vaikimisi kasutab Docker käskude käivitamiseks administraatorina juurkasutajat, kuid see on halb tava. Kui ühes konteineris on haavatavus, pääsevad häkkerid juurde Dockeri hostile.

Selle stsenaariumi vältimiseks looge spetsiaalne kasutaja ja rühm. Tundliku teabe kaitsmiseks saate määrata rühmale vajalikud õigused. Kui kasutaja satub ohtu, saate need kustutada ilma kogu projekti paljastamata.

Siin on näide kasutaja loomisest ja nende õiguste määramisest.

Mõnel baaspildil on loodud pseudokasutajad. Juurkasutaja õiguste asemel saate kasutada installitud kasutajaid.

Miks peaksite kasutama Dockeri parimaid tavasid?

Parimad tavad on suurepärane viis turvaaukude vähendamiseks ja puhtama koodi kirjutamiseks. Iga kasutatava Dockeri funktsiooni puhul saate rakendada palju häid tavasid.

Hästi korraldatud projekt muudab sünkroonimise lihtsamaks teiste orkestreerimisvahenditega, nagu Kubernetes. Võite alustada artiklis kirjeldatutega ja Dockeri õppimisel rohkem kasutusele võtta.