Utent f'Docker

Andrey Kopylov, CTO tagħna, iħobb, juża b'mod attiv u jippromwovi Docker. F'artiklu ġdid, jispjega kif toħloq utenti f'Docker. Xogħol korrett magħhom, għaliex l-utenti m'għandhomx jitħallew bid-drittijiet ta 'l-għeruq u kif issolvi l-problema ta' indikaturi mhux imqabbla fid-Dockerfile.

Il-proċessi kollha fil-kontenitur se jimxu bħala l-utent għerq, sakemm ma tispeċifikax b'mod speċjali. Dan jidher konvenjenti ħafna, minħabba li dan l-utent m'għandux restrizzjonijiet. Huwa għalhekk li taħdem bħala root hija ħażina mil-lat tas-sigurtà. Jekk ħadd f'moħħu tajjeb ma jaħdem fuq il-kompjuter lokali bid-drittijiet tal-għeruq, allura ħafna jmexxu proċessi taħt l-għeruq f'kontenituri.

Dejjem hemm bugs li jippermettu li l-malware jaħrab mill-kontenitur u jidħol fuq il-kompjuter ospitanti. Jekk nassumu l-agħar, irridu niżguraw li l-proċessi ġewwa l-kontenitur jitmexxew minn utent li m'għandux drittijiet fuq il-magna ospitanti.

Ħolqien ta' utent

Il-ħolqien ta 'utent f'kontenitur mhuwiex differenti mill-ħolqien tiegħu fid-distribuzzjonijiet tal-Linux. Madankollu, il-kmandi jistgħu jvarjaw għal stampi bażi differenti.

Для дистрибутивов основанных на debian в Dockerfile необходимо добавить:

RUN groupadd --gid 2000 node 
  && useradd --uid 2000 --gid node --shell /bin/bash --create-home node

Għall-alpini:

RUN addgroup -g 2000 node 
    && adduser -u 2000 -G node -s /bin/sh -D node

Tmexxi l-proċessi mill-utent

Biex tmexxi l-proċessi sussegwenti kollha bħala utent bl-UID 2000, mexxi:

USER 2000

Biex tmexxi l-proċessi sussegwenti kollha bħala l-utent tan-node, mexxi:

USER node

Aqra iktar f ' dokumentazzjoni.

Volumi tal-immuntar

Meta twaħħal volumi ġewwa kontenitur, ipprovdi lill-utent il-kapaċità li jaqra u/jew jikteb fajls. Biex tagħmel dan, l-UID (GID) tal-utent fil-kontenitur u l-utent barra l-kontenitur li għandu l-permessi xierqa biex jaċċessa l-fajl iridu jaqblu. F'dan il-każ, l-ismijiet tal-utent ma jimpurtax.

Ħafna drabi fuq kompjuter Linux, l-UID u l-GID ta 'utent huma ugwali għal 1000. Dawn l-identifikaturi huma assenjati lill-ewwel utent tal-kompjuter.

Huwa faċli li ssib l-identifikaturi tiegħek:

id

Inti ser tirċievi informazzjoni komprensiva dwar l-utent tiegħek.
Ibdel 2000 mill-eżempji bl-identifikatur tiegħek u kollox ikun tajjeb.

Assenja ta' UID u GID lil utent

Jekk l-utent inħoloq qabel, iżda għandek bżonn tibdel l-identifikaturi, tista 'tagħmel dan hekk:

RUN usermod -u 1000 node 
  && groupmod -g 1000 node

Jekk qed tuża l-immaġni bażi alpina, għandek bżonn tinstalla l-pakkett tad-dell:

RUN apk add —no-cache shadow

Tgħaddi l-ID tal-utent ġewwa l-kontenitur meta tibni l-immaġni

Jekk l-ID tiegħek u l-IDs tan-nies kollha li jaħdmu fuq il-proġett jaqblu, allura speċifika din l-ID fid-Dockerfile. Madankollu, ħafna drabi l-IDs tal-utent ma jaqblux.

Kif tikseb dak li trid mhix ċara immedjatament. Għalija, din kienet l-aktar ħaġa diffiċli fil-proċess tal-ħakma ta 'Docker. Ħafna utenti docker ma jirrealizzawx li hemm stadji differenti fil-ħajja ta 'immaġni. L-ewwel, l-immaġni hija mmuntata bl-użu ta 'Dockerfile. Meta tħaddem kontenitur minn immaġni, id-Dockerfile ma jibqax jintuża.

Il-ħolqien tal-utent għandu jseħħ meta tinbena l-immaġni. L-istess japplika għad-determinazzjoni tal-utent li taħtu jiġu mnedija l-proċessi. Dan ifisser li b'xi mod irridu ngħaddu l-UID (GID) ġewwa l-kontenitur.

Id-direttivi jintużaw biex jintużaw varjabbli esterni fid-Dockerfile ENV и ARG. Tqabbil dettaljat tad-direttivi hawn.

dockerfile

ARG UID=1000
ARG GID=1000
ENV UID=${UID}
ENV GID=${GID}
RUN usermod -u $UID node 
  && groupmod -g $GID node

Tista' tgħaddi argumenti permezz ta' docker-compose bħal dan:

docker-compose

build:
  context: ./src/backend
  args:
    UID: 1000
    GID: 1000

PS Biex tikkontrolla l-intricacies kollha ta 'Docker, mhuwiex biżżejjed li taqra d-dokumentazzjoni jew l-artikoli. Trid tipprattika ħafna, trid tieħu ħsieb Docker.

Sors: www.habr.com

Ixtri hosting affidabbli għal siti bi protezzjoni DDoS, servers VPS VDS 🔥 Ixtri hosting ta' websajts affidabbli bi protezzjoni DDoS, servers VPS VDS | ProHoster