Ko nga whakaahua Docker iti i whakapono ki a ratou ano*

[tohutoro mo nga korero pakiwaitara a nga tamariki o Amerika "The Little Engine That Can" - approx. ara]*

Ko nga whakaahua Docker iti i whakapono ki a ratou ano*

Me pehea te hanga aunoa i nga whakaahua Docker iti mo o hiahia

Te Ahumahi rerekee

I roto i nga marama e rua kua pahure ake nei, kua maataki ahau ki te iti o te ahua o te Docker, kei te haere tonu te tono?

Kei te mohio ahau, he rereke te whakaaro.

I mua i taku urunga ki nga korero me nga tikanga hangarau, ka hiahia ahau ki te whakamarama he aha tenei raruraru i tino whakararuraru ai ahau, me pehea hoki e pa ana ki a koe.

He aha te mea nui

Ma te whakaheke i nga ihirangi o te ahua Docker, ka whakaitihia e matou te rarangi o nga whakaraeraetanga. Hei taapiri, he maamaa ake nga whakaahua, na te mea kei roto anake nga mea e hiahiatia ana hei whakahaere tono.

He iti ake te painga - he tere ake te tango i nga whakaahua, engari, ki taku whakaaro, ehara tenei i te mea nui.

Kia mahara: Mena kei te awangawanga koe mo te rahi, he iti te ahua o te Alpine ka pai ki a koe.

Whakaahua korekore

Kaupapa Distroless he kowhiringa o nga whakaahua "korekore" taketake, kaore i roto i nga kaiwhakahaere kete, nga anga me etahi atu taputapu e mohio ana koe ki te kite i te raina whakahau. Ka rite ki te hua, te whakamahi kaiwhakahaere mōkihi rite pip и apt e kore e mahi:

FROM gcr.io/distroless/python3
RUN  pip3 install numpy

Dockerfile ma te whakamahi i te whakaahua korekore a Python 3

Sending build context to Docker daemon  2.048kB
Step 1/2 : FROM gcr.io/distroless/python3
 ---> 556d570d5c53
Step 2/2 : RUN  pip3 install numpy
 ---> Running in dbfe5623f125
/bin/sh: 1: pip3: not found

Kaore a Pip i te ahua

I te nuinga o te wa ka whakatauhia tenei raru ma te hanga maha-waahanga:

FROM python:3 as builder
RUN  pip3 install numpy

FROM gcr.io/distroless/python3
COPY --from=builder /usr/local/lib/python3.7/site-packages /usr/local/lib/python3.5/

Huihuinga maha-waahanga

Ko te hua ko te ahua o te 130MB te rahi. Ehara i te kino rawa! Hei whakataurite: ko te 929MB te taumaha o te ahua Python taunoa, me te mea "he kikokore" (3,7-slim) - 179MB, te ahua o te maunga (3,7-alpine) Ko te 98,6MB, ko te ahua koretake i whakamahia i roto i te tauira ko te 50,9MB.

He mea tika ki te tohu i roto i te tauira o mua kei te kapehia e matou he whaiaronga katoa /usr/local/lib/python3.7/site-packages, kei roto pea nga whakawhirinakitanga kaore e hiahiatia ana e matou. Ahakoa e marama ana he rereke te rereketanga o nga whakaahua turanga Python katoa.

I te wa e tuhi ana, kaore a Google distroless e tautoko i te maha o nga whakaahua: Ko Java me Python kei te waahi whakamatautau, a ko Python anake mo te 2,7 me te 3,5.

Ko nga whakaahua iti

Hoki atu ki taku hiahia ki te hanga whakaahua iti.

I te nuinga o te waa, i hiahia ahau ki te kite me pehea te hanga whakaahua korekore. Ko te kaupapa distroless e whakamahi ana i te taputapu hanga a Google bazel. Heoi, he nui te mahi ki te whakauru i a Bazel me te tuhi i o whakaahua (me te pono, he ngahau me te ako te hanga hou i te wira). I pirangi ahau ki te whakangawari i te hanga whakaahua iti ake: me tino ngawari te mahi hanga whakaahua, karekau. Kia kore he konae whirihoranga mo koe, kotahi noa te raina i te papatohu: просто собрать образ для <приложение>.

Na, ki te hiahia koe ki te hanga i a koe ake whakaahua, katahi koe ka mohio: tera ano te ahua docker ahurei, scratch. Ko te Scratch he ahua "kore", karekau he konae kei roto, ahakoa te taumaha ma te taunoa - aue! - 77 paita.

FROM scratch

Tirohanga pikitia

Ko te whakaaro o te ahua rakuraku ka taea e koe te kape i nga whakawhirinakitanga mai i te miihini manaaki ki roto ka whakamahia ki roto i te Dockerfile (he rite tenei ki te kape ki apt me te whakauru mai i te wahanga), i muri mai ranei i te wa e hangaia ai te ahua Docker. Ma tenei ka taea e koe te whakahaere katoa i nga ihirangi o te ipu Docker, na reira ka tino whakahaere i te rahi o te ahua.

Inaianei me kohikohi tatou i enei whakawhirinakitanga. Nga taputapu o naianei penei apt ka taea e koe te tango i nga kohinga, engari kua herea ki te miihini o naianei, a, i muri i nga mea katoa, kaore e tautoko i a Windows, MacOS ranei.

Na ka anga ahau ki te hanga i taku ake taputapu ka hanga aunoa i tetahi ahua ahua o te iti rawa te rahi me te whakahaere i tetahi tono. I whakamahia e au nga kohinga Ubuntu/Debian, i kowhiria (te tiki mai i nga kete mai i nga putunga) ka kitea e au o raatau whakawhirinakitanga. Ko te tikanga ka tango aunoa te kaupapa i te putanga pumau hou o te kete, me te whakaiti i nga tupono haumarutanga ka taea.

I tapaina e ahau te taputapu fetchy, no te mea ka... ka kitea e ia, ka kawea mai... nga mea e hiahiatia ana [mai i te reo Ingarihi “Tikina”, “mauria mai” - āhua. ara]. Ka mahi te taputapu ma te atanga raina whakahau, engari i te wa ano ka tukuna he API.

Hei whakahiato whakaahua ma te whakamahi fetchy (Me tango whakaahua Python i tenei wa), me whakamahi noa koe i te CLI penei: fetchy dockerize python. Ka patai pea koe mo te punaha whakahaere me te ingoa waehere na te mea fetchy I tenei wa ka whakamahi noa nga kohinga i runga i a Debian me Ubuntu.

Inaianei ka taea e koe te kowhiri ko wai nga whakawhirinakitanga kaore e hiahiatia (i roto i ta maatau horopaki) ka whakakorehia. Hei tauira, ka whakawhirinaki a Python ki te perl, ahakoa he pai te mahi me te kore e whakauruhia a Perl.

Результаты

Ko te ahua Python i hangaia ma te whakamahi i te whakahau fetchy dockerize python3.5 he 35MB anake te taumaha (Kei te tino mohio ahau kei nga ra kei te heke mai ka kaha ake te ngawari). Te ahua nei i taea e matou te heu i tetahi atu 15 WW mai i te ahua korekore.

Ka taea e koe te kite i nga whakaahua katoa kua kohia i tenei wa konei.

Kaupapa - konei.

Mena kei te ngaro koe i nga ahuatanga, hanga noa he tono - Ka koa ahau ki te awhina :) Ko te mea ano, kei te mahi ahau i tenei wa ki te whakauru i etahi atu kaiwhakahaere mokihi ki te tiki, kia kore ai he hiahia mo te hanga maha-waahanga.

Source: will.com

Tāpiri i te kōrero