Key Takeaways

  • Käytä virallisia Docker-kuvia parantaaksesi turvallisuutta ja suorituskykyä. Omien kuvien rakentaminen voi johtaa virheellisiin määrityksiin ja kestää kauemmin.
  • Käytä Dockerin kuvien tiettyjä versioita, jotta voit välttää arvaamattoman toiminnan ja ristiriidat riippuvuuksien kanssa. Vedä ja rakentaa käyttämällä tietyn version kuvia.
  • Tarkista Docker-kuvat tietoturva-aukkojen varalta Docker scan -komennolla. Selvitä, onko kuva riittävän turvallinen sovelluksellesi.

Docker on suosituin konttiohjelmisto, mutta kaikki eivät käytä sitä tehokkaasti. Jos et noudata Dockerin parhaita käytäntöjä, voit jättää sovelluksesi alttiiksi tietoturvaongelmille tai suorituskykyongelmille.

Tässä on joitain parhaita käytäntöjä, joita voit omaksua käyttääksesi Dockerin ominaisuuksia kekseliäästi. Nämä toimenpiteet parantavat turvallisuutta ja varmistavat, että luot ylläpidettäviä Docker-tiedostoja.

1. Käytä virallisia Docker-kuvia

Kun säilötät sovelluksesi, sinun on käytettävä Docker-kuvaa. Voit rakentaa kuvan mukautetuilla määrityksillä tai käyttää Dockerin virallisia kuvia.

instagram viewer

Omien kuvien rakentaminen edellyttää, että hoidat kaikki asetukset itse. Jos haluat esimerkiksi luoda kuvan node.js-sovellukselle, sinun on ladattava node.js ja sen riippuvuudet. Prosessi on aikaa vievä, eikä se välttämättä johda kaikkiin oikeisiin kokoonpanoihin.

Docker suosittelee käyttämään virallista node.js-kuvaa, jonka mukana tulee kaikki oikeat riippuvuudet. Docker-kuvissa on paremmat suojaustoimet, ne ovat kevyitä ja niitä on testattu erilaisiin ympäristöihin. Viralliset kuvat löydät osoitteesta Dockerin viralliset kuvat sivu.

2. Käytä Docker Imagen tiettyjä versioita

Yleensä kun otat virallisen kuvan, se on uusimmalla tunnisteella varustettu kuva, joka edustaa kuvan viimeisintä päivitettyä versiota. Aina kun rakennat säilön tästä kuvasta, se on eri versio viimeisestä säilystä.

Rakentaminen eri Docker-kuvaversioilla voi aiheuttaa arvaamatonta toimintaa sovelluksessasi. Versiot voivat olla ristiriidassa muiden riippuvuuksien kanssa ja lopulta aiheuttaa sovelluksesi epäonnistumisen.

Docker suosittelee, että vedät ja rakennat käyttämällä tietyn version kuvia. Virallisissa kuvissa on myös dokumentaatio ja ne kattavat yleisimmät käyttötapaukset.

Esimerkiksi sen sijaan docker pull alppi, käytä docker pull alppi: 3.18.3. Docker vetää kyseisen version. Voit sitten käyttää sitä peräkkäisissä koontiversioissa, mikä vähentää sovelluksesi virheitä. Löydät kuvien tietyt versiot viralliselta Docker-kuvasivulta kohdasta Tuetut tunnisteet ja vastaavat Dockerfile-linkit:

3. Skannaa kuvat tietoturva-aukkojen varalta

Kuinka voit määrittää, että kuvassa, jonka haluat rakentaa, ei ole tietoturva-aukkoja? Skannaamalla sen. Voit skannata Docker-kuvia käyttämällä Docker-skannauskomentoa. Syntaksi on seuraava:

docker scan [IMAGE]

Sinun on ensin kirjauduttava sisään Dockeriin, jotta voit skannata kuvan.

docker login

Skannaa sitten tietty kuva, jonka haluat tarkistaa:

docker scan ubuntu: latest

Työkalu nimeltä Synk skannaa kuvan ja luettelee mahdolliset haavoittuvuudet niiden vakavuuden mukaan. Näet haavoittuvuuden tyypin ja linkit sitä koskeviin tietoihin, mukaan lukien ohjeet sen korjaamiseen. Voit päätellä skannauksesta, onko kuva riittävän turvallinen sovelluksellesi.

4. Käytä pienikokoisia Docker-kuvia

Kun vedät Docker-kuvan, sen mukana tulee kaikki järjestelmäapuohjelmat. Tämä suurentaa kuvan kokoa työkaluilla, joita et tarvitse.

Suuret Docker-kuvat vievät tallennustilaa ja voivat hidastaa säiliöiden suoritusaikaa. Heillä on myös suurempi mahdollisuus saada tietoturva-aukkoja.

Sinä pystyt pienennä Docker-kuvien kokoa Alpine-kuvien avulla. Alpine-kuvat ovat kevyitä ja niissä on vain tarvittavat työkalut. Ne vähentävät tallennustilaa, jolloin sovelluksesi toimii nopeammin ja tehokkaammin.

Löydät Alpine-version useimmille virallisille kuville Dockerista. Tässä on esimerkki PostgreSQL: n Alpine-versioista:

5. Optimoi välimuistin kuvakerrokset

Jokainen Docker-tiedoston komento edustaa kuvan tasoa. Kerroksilla on erilaisia ​​​​apuohjelmia ja ne suorittavat erilaisia ​​​​toimintoja. Jos katsot virallisia kuvia Docker Hubissa, näet niiden luomiseen käytetyt ohjeet.

Dockerfile sisältää kaiken mitä tarvitset kuvan luomiseen. Se on yksi syistä, miksi monet kehittäjät suosivat Dockeria virtuaalikoneiden sijaan.

Tässä on esimerkki Alppien kuvasta:

Kun rakennat sovelluksesi kuvan perusteella, lisäät kuvaan tasoja. Docker suorittaa ohjeita Docker-tiedostossa ylhäältä alas, ja jos taso muuttuu, Dockerin on rakennettava seuraavat tasot uudelleen.

Paras käytäntö on järjestää Docker-tiedosto vähiten muuttuvista tiedostoista useimmin muuttuviin tiedostoihin. Ohjeet, jotka eivät muutu, kuten asennus, voivat olla tiedoston yläosassa.

Kun muutat tiedostoa, Docker rakentaa muutetuista tiedostoista ja tallentaa sen yläpuolella olevat muuttumattomat tiedostot välimuistiin. Siksi prosessi etenee nopeammin.

Katso yllä olevan kuvan esimerkkiä. Jos sovellustiedostoissa tapahtuu muutoksia, Docker rakentaa niistä; sen ei tarvitse asentaa npm-paketteja uudelleen.

Jos rakennat kuvasta, prosessi toimii nopeammin kuin kaikkien muiden tasojen uudelleen rakentaminen. Välimuisti nopeuttaa myös kuvien vetämistä ja työntämistä Docker Hubista.

7. Käytä .dockerignore-tiedostoa

Kun rakennat kuvan Docker-tiedoston avulla, saatat haluta pitää tietyt tiedot yksityisinä. Jotkut tiedostot ja kansiot voivat olla osa projektia, mutta et halua sisällyttää niitä rakennusprosessiin.

Dockerignore-tiedoston käyttäminen pienentää kuvan kokoa huomattavasti. Tämä johtuu siitä, että rakennusprosessi sisältää vain tarvittavat tiedostot. Se auttaa myös pitämään tiedostot yksityisinä ja välttämään salaisten avainten tai salasanojen paljastamisen.

.dockerignore-tiedosto on tiedosto, jonka luot samaan kansioon kuin Dockerfile. Se on tekstitiedosto, aivan kuten .gitignore-tiedosto, joka sisältää niiden tiedostojen nimet, joita et halua sisällyttää rakennusprosessiin.

Tässä on esimerkki:

8. Käytä vähiten etuoikeutetun käyttäjän periaatetta

Oletuksena Docker käyttää pääkäyttäjää järjestelmänvalvojana komentojen suorittamiseen, mutta tämä on huono käytäntö. Jos jossakin säilössä on haavoittuvuus, hakkerit voivat käyttää Docker-isäntä.

Voit välttää tämän skenaarion luomalla oman käyttäjän ja ryhmän. Voit määrittää ryhmälle tarvittavat luvat arkaluonteisten tietojen suojaamiseksi. Jos käyttäjä vaarantuu, voit poistaa ne paljastamatta koko projektia.

Tässä on esimerkki, joka näyttää kuinka luodaan käyttäjä ja asetetaan hänen käyttöoikeudet:

Joihinkin peruskuviin on luotu pseudo-käyttäjiä. Voit käyttää asennettuja käyttäjiä pääkäyttäjän oikeuksien sijasta.

Miksi sinun pitäisi omaksua Dockerin parhaat käytännöt

Parhaat käytännöt ovat loistava tapa vähentää haavoittuvuuksia ja kirjoittaa puhtaampaa koodia. Voit soveltaa jokaiseen käyttämääsi Docker-ominaisuuteen monia parhaita käytäntöjä.

Hyvin organisoitu projekti helpottaa synkronointia muiden orkestrointityökalujen, kuten Kubernetesin, kanssa. Voit aloittaa artikkelissa kuvatuista ja ottaa enemmän käyttöön, kun opit Dockerin.