Kom ons gesels oor die beste praktyke wat u moet volg tydens gebruik van houers.
Containerization word wyd in verskillende organisasies gebruik om toepassings in 'n houer te ontplooi. Hierdie houers is gewild omdat dit baie liggewig is. Om die beste te benut houers, u moet 'n paar beste praktyke volg terwyl u daarmee werk.
1 Gebruik stabiele basisbeeld
2 Hou houerprente kleiner
3 Merk u houerprente
5 Een aansoek per houer
6 Hou staatlose houers
Gebruik stabiele basisbeeld
Danksy Docker was die skep van houerbeelde nog nooit so eenvoudig nie.
Spesifiseer u basisprent, voeg u veranderinge by en bou u houer. Alhoewel dit wonderlik is om aan die gang te kom, kan die gebruik van die standaardbasisprente lei tot groot beelde vol sekuriteitsgevoelighede. Vermy ook die gebruik van die "nuutste" etiket-docker-prent, aangesien daar 'n groot kans is dat 'n fout daarin voorkom.
Debian of Ubuntu word as die basisbeeld van die meeste Docker-beelde gebruik. Dit is baie nuttig in terme van verenigbaarheid en maklike aan boord, maar hierdie basisbeelde kan honderde megabytes ekstra bokoste by u houer voeg.
Eenvoudige Node.js en Go, 'hallo wêreld'-programme, is byvoorbeeld ongeveer 700 megabyte. U aansoek is waarskynlik slegs 'n paar megabyte groot. Dus, al hierdie bykomende bokoste is vermorsde ruimte en 'n wonderlike wegkruipplek vir veiligheids kwesbaarhede en foute.
As u programmeringstaal of stapel nie die opsie vir 'n klein basisbeeld het nie, kan u u houer met rou gebruik Alpiene Linux as vertrekpunt. Dit gee u ook volledige beheer oor wat binne u houers is.
Hou houerprente kleiner
Die gebruik van kleiner basisbeelde is waarskynlik die maklikste manier om u houergrootte te verminder.
Die kans is dat u taal of stapel wat u gebruik, 'n amptelike prentjie is wat baie kleiner is as die standaardprent. Kom ons kyk byvoorbeeld na Node.js-houer. As ons van die standaardknooppunt gaan: nuutste na knooppunt: 14-alpien verminder ons basisbeeldgrootte met byna tien keer.
In die nuwe Docker-lêer begin die houer met die node: alpine-beeld, skep 'n gids vir die kode, installeer afhanklikhede met NPM en begin uiteindelik die Node.js-bediener. Met hierdie opdatering is die resulterende houer byna tien keer kleiner.
U skep die houer nog ligter deur die boupatroon te gebruik. Met interpretatiewe tale word die bronkode na 'n tolk gestuur, en dan word dit direk uitgevoer. Maar met 'n saamgestelde taal word die bronkode vooraf in 'n saamgestelde kode omgeskakel.
Met die samestelling van tale, benodig die samestelling dikwels gereedskap wat nie nodig is om die kode uit te voer nie. Dit beteken dus dat u hierdie gereedskap heeltemal van die finale houer kan verwyder. Om dit te kan doen, kan u die bouerpatroon gebruik. Die eerste houer bou die kode, en dan word die saamgestelde kode in die finale houer verpak sonder al die samestellers en gereedskap wat benodig word om die saamgestelde kode te maak.
Die gebruik van klein basisbeelde en die bouerpatroon is uitstekende maniere om veel kleiner houers te skep sonder baie werk.
Merk u houerprente
Docker-tagging is 'n buitengewone kragtige instrument vir ons bestuur van ons beelde. Dit help met die bestuur van verskillende weergawes van 'n docker-beeld. Hieronder is 'n voorbeeld van die bou van 'n docker-afbeelding met die naam v1.0.1
Daar is twee soorte etikette wat gebruik word: stabiele tags unieke tags.
Gebruik stabiele etikette om die basisbeeld van die houer te behou. Vermy die gebruik van hierdie etikette vir ontplooiingshouers, want hierdie etikette sal gereeld opdaterings ontvang, en dit kan lei tot teenstrydighede in die produksieomgewing.
Gebruik unieke merkers vir ontplooiings. Met behulp van unieke etikette kan u u produksieklus op baie nodes skaal. Dit vermy teenstrydighede, en leërskare sal nie 'n ander weergawe van die doktersbeeld trek nie.
As 'n goeie praktyk, moet u ook die ontplooide prentetikette toesluit deur skryfaktivering as onwaar te stel. Dit help om die ontplooide beeld nie per ongeluk uit die register te verwyder nie.
Hieronder is die belangrikste punte om seker te maak dat die houer veilig is.
Verifieer die egtheid van enige sagteware wat u in u houer installeer
Gebruik getekende docker-beelde of -prente met 'n geldige kontrolesom.
Maak seker dat die URL HTTPS gebruik as u 'n bewaarplek van derdepartye gebruik.
Sluit die regte GPG-sleutels in voordat u u pakketbestuurder gebruik om die pakkette op te dateer
Moet nooit u toepassings as wortel laat loop nie. U moet altyd die gebruiker-aanwysings binne die dockerfile gebruik om seker te maak dat u die regte van u gebruiker laat vaar.
Moenie SSH binne-in u houer laat loop nie.
Maak die lêerstelsel slegs leesbaar.
Gebruik naamruimtes om u groep te verdeel.
Die Sentrum vir Internetveiligheid (GOS) is 'n standaard vir die gebruik van dokters om die veiligheid van 'n dockerhouer te evalueer. Hulle het 'n open source skrif genaamd Docker Bank vir Veiligheid, waarmee u kan hardloop om seker te maak hoe veilig 'n dockerhouer is.
Een aansoek per houer
Virtuele masjiene is goed om verskeie dinge parallel te laat loop, maar as dit by houers kom, moet u 'n enkele toepassing binne een houer laat loop. Byvoorbeeld, as u 'n MEAN-toepassing in 'n houeromgewing bestuur, moet dit een houer hê vir MongoDB, een houer vir Express.js, een houer vir Angular en een houer vir Node.js.
Selfs houers kan veelvuldige toepassings parallel daarmee gebruik, maar dan kan u gebruik maak van die houermodel. Hieronder is 'n korrekte en verkeerde voorstelling van die gebruik van toepassings in 'n houer.
Die houers is ontwerp om 'n soortgelyke lewensiklus te hê as die toepassing wat dit gebruik. As die houer begin, sal die aansoek begin. As 'n houer stop, stop die toediening ook.
Hou staatlose houers
Houers is fundamenteel ontwerp om staatloos te wees. In hierdie geval word die aanhoudende data wat inligting bevat oor die toestand van die houer buite die houer geberg. Lêers kan gestoor word in 'n objekwinkel, soos wolkberging, om inligting oor gebruikersessies te stoor, u kan databasisse met lae latency gebruik, soos Redis, en u kan ook eksterne skyf aanheg vir blokvlakberging.
Deur die berging buite die houer te hou, kan u die houer maklik afsluit of vernietig sonder om bang te wees om data te verloor.
As u staatlose houers gebruik, is dit baie maklik om te skuif of te skaal volgens die sakebehoeftes.
Bogenoemde is enkele van die belangrikste praktyke wat u moet volg as u met houers werk as u 'n Docker Production-omgewing bou, en kyk hoe u dit kan beveilig.