Кључне Такеаваис
- Користите званичне Доцкер слике за бољу безбедност и перформансе. Прављење сопствених слика може довести до погрешне конфигурације и захтева више времена.
- Користите одређене верзије Доцкер слика да бисте избегли непредвидиво понашање и сукобе са зависностима. Повуците и изградите користећи слике одређене верзије.
- Скенирајте Доцкер слике за безбедносне пропусте користећи команду скенирање доцкер-а. Утврдите да ли је слика довољно безбедна за вашу апликацију.
Доцкер је најпопуларнији софтвер за контејнеризацију, али га не користе сви ефикасно. Ако не пратите најбоље праксе Доцкер-а, можете оставити своје апликације рањивим на безбедносне проблеме или проблеме са перформансама.
Ево неколико најбољих пракси које можете да усвојите да бисте сналажљиво користили Доцкер функције. Ове мере побољшавају безбедност и обезбеђују да креирате Доцкер датотеке за одржавање.
1. Користите званичне Доцкер слике
Приликом контејнеризације ваше апликације, морате користити Доцкер слику. Можете да направите слику са прилагођеном конфигурацијом или користите Доцкер-ове званичне слике.
Прављење сопствених слика захтева да сами управљате свим конфигурацијама. На пример, да бисте направили слику за апликацију ноде.јс, морате да преузмете ноде.јс и његове зависности. Процес је дуготрајан и можда неће довести до исправног подешавања.
Доцкер препоручује да користите званичну слику ноде.јс која долази са свим исправним зависностима. Доцкер слике имају боље мере безбедности, лагане су и тестиране су за различита окружења. Званичне слике можете пронаћи на Доцкерове званичне слике страна.
2. Користите одређене верзије Доцкер слике
Обично, када повучете званичну слику, то је она са најновијом ознаком која представља најновију ажурирану верзију те слике. Сваки пут када направите контејнер од те слике, то је другачија верзија последњег контејнера.
Изградња са различитим верзијама Доцкер слике може изазвати непредвидиво понашање у вашој апликацији. Верзије се могу сукобити са другим зависностима и на крају довести до неуспеха апликације.
Доцкер препоручује да повучете и направите помоћу слика одређене верзије. Званичне слике такође имају документацију и покривају најчешће случајеве употребе.
На пример, уместо доцкер пулл алпине, користи доцкер пулл алпине: 3.18.3. Доцкер ће повући ту специфичну верзију. Затим га можете користити у узастопним градњама, смањујући грешке у вашој апликацији. Можете пронаћи одређене верзије слика на званичној страници Доцкер слика, под Подржане ознаке и одговарајуће Доцкерфиле везе:
3. Скенирајте слике за безбедносне пропусте
Како можете утврдити да слика са којом желите да направите нема безбедносних пропуста? Скенирањем. Можете скенирати Доцкер слике помоћу наредбе скенирање доцкер-а. Синтакса је следећа:
docker scan [IMAGE]
Прво се морате пријавити на Доцкер да бисте скенирали слику.
docker login
Затим скенирајте одређену слику коју желите да проверите:
docker scan ubuntu: latest
Алат тзв Синк скенира слику, наводећи све рањивости према њиховој озбиљности. Можете видети врсту рањивости и везе до информација о њој, укључујући како да је поправите. Из скенирања можете рећи да ли је слика довољно сигурна за вашу апликацију.
4. Користите Доцкер слике мале величине
Када повучете Доцкер слику, она долази са свим системским услужним програмима. Ово повећава величину слике помоћу алата који вам нису потребни.
Велике Доцкер слике заузимају простор за складиштење и могу успорити време рада контејнера. Они такође имају већу могућност безбедносних рањивости.
Можете смањите величину Доцкер слика помоћу Алпине слика. Алпске слике су лагане и долазе са само неопходним алатима. Они смањују простор за складиштење, чинећи да ваша апликација ради брже и ефикасније.
Наћи ћете Алпине верзију за већину званичних слика на Доцкер-у. Ево примера Алпине верзија за ПостгреСКЛ:
5. Оптимизујте слојеве слике за кеширање
Свака команда у Доцкерфиле-у представља слој на слици. Слојеви имају различите функције и обављају различите функције. Ако погледате званичне слике на Доцкер Хуб-у, видећете упутства која се користе за њихово креирање.
Доцкерфиле укључује све што вам је потребно за креирање слике. То је један од разлога зашто многи програмери више воле Доцкер него виртуелне машине.
Ево структуре примера алпске слике:
Када направите своју апликацију на основу слике, додајете више слојева слици. Доцкер покреће упутства на Доцкерфиле-у од врха до дна, а ако се слој промени, Доцкер мора да поново изгради следеће слојеве.
Најбоља пракса је да уредите свој Доцкерфиле од датотека које се најмање мењају на оне које се најчешће мењају. Упутства која се не мењају, попут инсталације, могу бити на врху датотеке.
Када промените датотеку, Доцкер гради од промењених датотека и кешира непромењене датотеке изнад ње. Дакле, процес тече брже.
Погледајте пример приказан на горњој слици. Ако дође до промене у датотекама апликације, Доцкер гради одатле; не мора поново да инсталира нпм пакете.
Ако градите на основу слике, процес ће тећи брже од поновног стварања свих осталих слојева. Кеширање такође убрзава повлачење и гурање слика из Доцкер Хуб-а.
7. Користите .доцкеригноре датотеку
Када правите слику помоћу Доцкерфиле-а, можда ћете желети да неке информације задржите приватним. Неке датотеке и фасцикле могу бити део пројекта, али не желите да их укључите у процес прављења.
Коришћење .доцкеригноре датотеке значајно смањује величину слике. То је зато што процес изградње укључује само неопходне датотеке. Такође помаже да датотеке остану приватне и да се избегне откривање тајних кључева или лозинки.
Датотека .доцкеригноре је датотека коју креирате у истој фасцикли као и ваш Доцкерфиле. То је текстуална датотека, слично .гитигноре датотеку, који садржи имена свих датотека које не желите да укључите у процес прављења.
Ево примера:
8. Користите принцип најмање привилегованог корисника
Доцкер подразумевано користи роот корисника као администратора за дозволу за покретање команди, али ово је лоша пракса. Ако постоји рањивост у једном од контејнера, хакери могу да приступе Доцкер хосту.
Да бисте избегли овај сценарио, креирајте наменског корисника и групу. Можете подесити потребне дозволе за групу да би заштитила осетљиве информације. Ако је корисник компромитован, можете га избрисати без излагања целог пројекта.
Ево примера који показује како да креирате корисника и подесите његове дозволе:
Неке основне слике имају креиране псеудо-кориснике. Можете користити инсталиране кориснике уместо роот корисничких дозвола.
Зашто би требало да усвојите Доцкерове најбоље праксе
Најбоље праксе су одличан начин за смањење рањивости и писање чистијег кода. Постоји много најбољих пракси које можете применити на сваку Доцкер функцију коју користите.
Добро организован пројекат олакшава синхронизацију са другим алатима за оркестрирање као што је Кубернетес. Можете почети са онима наведеним у чланку и усвојити више док научите Доцкер.