Isticmaale gudaha Docker

Andrey Kopylov, CTO-deena, waxay jecel yihiin, si firfircoon u isticmaalaan oo kor u qaadaan Docker. Maqaal cusub, wuxuu sharxayaa sida loo abuuro isticmaalayaasha Docker. Si sax ah ula shaqeeyaan iyaga, sababta isticmaalayaashu waa inaan looga tagin xuquuqaha xididka iyo sida loo xalliyo dhibaatada tilmaamayaasha ismaandhaafka ah ee Dockerfile.

Dhammaan hababka ku jira weelka waxay u socon doonaan sidii xidid isticmaale, ilaa aad si gaar ah u qeexdo mooyee. Tani waxay u muuqataa mid aad u habboon, sababtoo ah isticmaalahani ma laha xayiraad. Tani waa sababta ka shaqeynta xididka ay u khaldan tahay dhinaca amniga. Haddii qofna maskaxdiisa saxda ah uusan ka shaqeynin kombuyuutarka maxalliga ah oo leh xuquuqaha xididka, markaa qaar badan oo ka mid ah hababka hoos yimaada xididka weelasha.

Had iyo jeer waxaa jira cayayaan u oggolaanaya malware-ku inuu ka baxsado weelka oo uu galo kombuyuutarka martida loo yahay. Anaga oo u malaynaya tan ugu xun, waa in aan hubinno in hababka gudaha weelka ay maamulaan isticmaale aan wax xuquuq ah ku lahayn mashiinka martida loo yahay.

Abuuritaanka isticmaale

Abuuritaanka isticmaalaha weelka waxba kama duwana ka abuurista qaybinta Linux. Si kastaba ha ahaatee, amarradu waxay ku kala duwanaan karaan sawirada salka kala duwan.

Qaybinta ku salaysan debian, waxaad u baahan tahay inaad ku darto waxa soo socda Dockerfile:

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

Alpine:

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

Nidaamyada socodsiinta ee isticmaalaha

Si aad u socodsiiso dhammaan hababka xiga isticmaale ahaan UID 2000, orod:

USER 2000

Si aad u socodsiiso dhammaan geeddi-socodyadii xigay ahaan isticmaale node, orod:

USER node

Wax badan ka sii akhri dukumentiyo.

Mugga kor u qaadista

Markaad kor u qaadayso mugga gudaha weelka, sii isticmaaluhu awood uu wax ku akhriyo iyo/ama qoro faylasha. Si tan loo sameeyo, UID (GID) isticmaalaha weelka iyo isticmaalaha ka baxsan weelka ee haysta ogolaanshaha ku habboon ee gelitaanka faylka waa inay iswaafaqaan. Xaaladdan oo kale, isticmaalayaashu macno ma laha.

Inta badan kumbuyuutarka Linux, UID-ga isticmaale iyo GID waxay la mid yihiin 1000. Aqoonsiyadan waxaa loo qoondeeyay isticmaaleha ugu horreeya ee kumbuyuutarka.

Helitaanka tilmaamayaashaadu way fududahay:

id

Waxaad heli doontaa macluumaad dhamaystiran oo ku saabsan isticmaalahaaga.
Ku beddel 2000 tusaale ahaan aqoonsigaaga wax walbana way fiicnaan doonaan.

Ku meelaynta UID iyo GID isticmaale

Haddii isticmaaluhu hore loo abuuray, laakiin aad u baahan tahay inaad bedesho aqoonsiga, waxaad u samayn kartaa sidan:

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

Haddii aad isticmaalayso sawirka saldhigga alpine, waxaad u baahan tahay inaad rakibto xirmada hooska:

RUN apk add β€”no-cache shadow

Gudbitaanka aqoonsiga isticmaalaha gudaha weelka marka sawirka la dhisayo

Haddii aqoonsigaaga iyo aqoonsiga dhammaan dadka ka shaqeeya mashruuca ay iswaafaqaan, markaas kaliya ku sheeg aqoonsigan Dockerfile. Si kastaba ha ahaatee, inta badan aqoonsiga isticmaaluhu isma dhigmaan.

Sida loo gaaro waxaad rabto isla markiiba ma cadda. Aniga ahaan, tani waxay ahayd waxa ugu adag ee habka maaraynta Docker. Isticmaalayaal badan oo dockers ah ma oga inay jiraan heerar kala duwan oo nolosha sawirka ah. Marka hore, sawirka waxaa la isugu geeyaa iyadoo la isticmaalayo Dockerfile. Markaad weel ka wado sawirka, Dockerfile-ka lama isticmaalo.

Abuuritaanka isticmaale waa inuu dhacaa marka sawirka la dhisayo. Isla sidaas oo kale ayaa khuseysa go'aaminta isticmaalaha kaas oo hababka la bilaabay. Tani waxay ka dhigan tahay in aan si uun uga gudubno UID (GID) gudaha weelka.

Awaamiirta waxaa loo isticmaalaa in lagu isticmaalo doorsoomayaasha dibadda ee Dockerfile ENV ΠΈ ARG. Isbarbardhigga faahfaahsan ee awaamiirta halkan.

Dockerfile

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

Waxaad doodaha kaga gudbi kartaa docker-compose sidan:

docker-compose

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

PS Si aad u barato dhammaan qallafsanaanta Docker, kuma filna inaad akhrido dukumeentiyada ama maqaallada. Waxaad u baahan tahay inaad wax badan barato, waxaad u baahan tahay inaad dareento Docker.

Source: www.habr.com

Add a comment