VM kapa Docker?

U tseba joang haeba u hloka Docker eseng VM? U hloka ho tseba hore na hantle-ntle u batla ho itšehla thajana efe. Haeba u batla ho arola sistimi e nang le lisebelisoa tse netefalitsoeng tse inehetseng le lisebelisoa tsa nnete, khetho e lokela ho ba VM. Haeba o hloka ho arola lits'ebetso tse sebetsang joalo ka lits'ebetso tse arohaneng tsa sistimi, o tla hloka Docker.

Joale phapang ke efe lipakeng tsa lijana tsa Docker le li-VM?

Mochini oa Virtual (VM) ke khomphutha ea sebele e nang le lisebelisoa tsohle tsa sebele le disk e thata eo ho eona ho kentsoeng OS e ncha e ikemetseng hammoho le li-driver tsa lisebelisoa tse tloaelehileng, tsamaiso ea memori le likarolo tse ling. Ka mantsoe a mang, re fumana "hardware" ea 'mele e re lumellang ho tsamaisa lik'homphieutha tse ngata khomphuteng e le' ngoe.
VM e kentsoeng e ka nka sebaka disk ea komporo ea hau ka mekhoa e fapaneng:

  • sebaka se tsitsitseng sa disk, se lumellang ho fihlella ka potlako ho hard disk ea sebele le ho qoba ho arohana ha lifaele;
  • kabo ya memori e matla. Ha o kenya lits'ebetso tse ling, memori e tla abeloa bona ka matla ho fihlela e fihla ho palo e kholo e abetsoeng eona.

Ha ho ntse ho e-na le mechine e mengata ea sebele ka seva, e nka sebaka se eketsehileng, hape e hloka ts'ehetso ea kamehla bakeng sa tikoloho e hlokahalang hore kopo ea hau e sebetse.

Docker ke software ea ho theha lits'ebetso tse thehiloeng ho setshelo. Lijana le mechini ea sebele li na le melemo e tšoanang, empa li sebetsa ka tsela e fapaneng. Linkho li nka sebaka se senyane hobane... sebelisa hape lisebelisoa tse ngata tse arolelanoang tsa sistimi e amohelang ho feta VM, hobane ho fapana le VM, e fana ka virtualization boemong ba OS, eseng boemong ba hardware. Mokhoa ona o fella ka mohopolo o tlase oa mohopolo, ho tsamaisoa ka potlako, le ho hola habonolo.

Sets'oants'o se fana ka mokhoa o sebetsang haholoanyane oa ho kenyelletsa lits'ebetso ka ho fana ka li-interfaces tse hlokahalang ho sistimi e amohelang. Karolo ena e lumella lijana hore li arolelane motheo oa sistimi, 'me sets'oants'o se seng le se seng se sebetsa e le ts'ebetso e arohaneng ea OS e nang le libaka tsa eona tsa mohopolo (sebaka sa eona sa aterese). Kaha sebaka se seng le se seng sa aterese ea setshelo ke sa sona, data ea libaka tse fapaneng tsa memori e ke ke ea fetoloa.
OS ea tlhaho bakeng sa Docker ke Linux (Docker e ka sebelisoa hape ho Windows le MacOS), e sebelisa melemo ea eona e ka sehloohong, e e lumellang ho hlophisa karohano ea kernel. Ho tsamaisa lijana tsa Docker ho Windows ho tla etsahala ka har'a mochini o sebetsang oa Linux OS, hobane lijana li arolelana OS ea sistimi e amohelang 'me OS ea mantlha bakeng sa bona ke Linux.

Setshelo - se sebetsa joang?

Setshelo ke kakaretso ea boemo ba ts'ebeliso e kopanyang khoutu le litšepeho. Lits'oants'o li lula li bōptjoa ho tsoa litšoantšong, li eketsa lera le ka ngoloang le ho qala li-parameter tse fapaneng. Hobane setshelo se na le lera la sona la ho ngola 'me liphetoho tsohle li bolokiloe karolong eo, lijana tse ngata li ka arolelana phihlello ea setšoantšo se ts'oanang.

Sets'oants'o se seng le se seng se ka hlophisoa ka faele ho projeke ea docker-compose e kenyellelitsoeng tharollong ea mantlha - docker-compose.yml. Ha u le moo u ka beha liparamente tse fapaneng joalo ka lebitso la setshelo, likou, li-identifiers, meeli ea lisebelisoa, litšepe lipakeng tsa lijana tse ling. Haeba u sa hlalose lebitso la setshelo litlhophisong, Docker e tla theha setshelo se secha nako le nako, a se fa lebitso ka tšohanyetso.

Ha setshelo se qalisoa ho tsoa setšoantšong, Docker e beha sistimi ea ho bala-ho ngola ka holim'a likarolo life kapa life tse ka tlase. Mona ke moo lits'ebetso tsohle tseo re batlang hore setshelo sa rona sa Docker se sebetse li tla sebetsa.

Ha Docker e qala setshelo sa pele, karolo ea pele ea ho bala-ho ngola ha e na letho. Ha liphetoho li etsahala, li sebelisoa lera lena; mohlala, haeba u batla ho fetola faele, faele eo e tla kopitsoa ho tloha karolong ea ho bala feela e ka tlaase ho ea ho bala-ngola.
Mofuta oa ho bala feela oa faele o ntse o tla ba teng, empa joale o patiloe tlasa kopi. Li-volumes li sebelisoa ho boloka data, ho sa tsotelehe potoloho ea bophelo ea setshelo. Li-volumes li qalisoa ha setshelo se etsoa.

Setšoantšo se amana joang le setshelo?

Setšoantšo - ntho e ka sehloohong bakeng sa setshelo ka seng. Setšoantšo se entsoe ho tsoa ho Dockerfile e kenyellelitsoeng morerong 'me ke sete sa litsamaiso tsa lifaele (li-layers) tse behiloeng holim'a tse ling' me li kopantsoe hammoho, ho baloa feela; palo e kholo ea lihlopha ke 127.

Bohareng ba setšoantšo se seng le se seng ho na le setšoantšo sa motheo, se boletsoeng ke taelo ea FROM - sebaka sa ho kena ha u haha ​​setšoantšo sa Dockerfile. Lera le leng le le leng ke lera le baloang feela mme le emeloa ke taelo e le 'ngoe e fetolang sistimi ea faele, e ngotsoeng ho Dockerfile.
Ho kopanya likarolo tsena ho ba setšoantšo se le seng, Docker e sebelisa Advanced multi layered Union file system (AuFS e hahiloe ka holim'a UnionFS), e lumellang lifaele tse fapaneng le li-directory tse tsoang likarolong tse fapaneng tsa lifaele hore li koaheloe ka mokhoa o hlakileng, ho theha tsamaiso e kopanetsoeng ea faele.

Li-Layers li na le metadata e u lumellang hore u boloke lintlha tse amanang le karolo ka 'ngoe nakong ea ho sebetsa le nako ea ho haha. Lera le leng le le leng le na le sehokelo sa lera le latelang; haeba lera le se na sehokelo, ke karolo e holimo ka ho fetisisa setšoantšong.

Dockerfile e kanna ea ba le litaelo tse kang:

  • HO TSOA — sebaka sa ho kena ha u etsa setšoantšo;
  • MOTLATSI - lebitso la mong'a setšoantšo;
  • RUN - taelo ea ts'ebetso nakong ea kopano ea setšoantšo;
  • ADD - ho kopitsa faele e amohelang setšoantšong se secha; haeba u hlakisa URL ea faele, Docker e tla e jarolla bukeng e boletsoeng;
  • ENV - mefuta e fapaneng ea tikoloho;
  • CMD - e qala ho theha setshelo se secha se thehiloeng setšoantšong;
  • ENTRYPOINT - taelo e etsoa ha setshelo se qala.
  • WORKDIR ke buka e sebetsang bakeng sa ho phethahatsa taelo ea CMD.
  • USER - e beha UID bakeng sa sets'oants'o se entsoeng ho latela setšoantšo.
  • VOLUME - e kenya pokello ea moamoheli ka har'a setshelo.
  • EXPOSE ke sehlopha sa likou tse mameloang ka har'a setshelo.

UnionFS e sebetsa joang?

UnionFS - Sistimi ea faele ea utility (FS) bakeng sa Linux le FreeBSD. FS ena e sebelisa mokhoa oa ho kopitsa-ho-ngola (Copy-On-Write, COW). Yuniti e sebetsang ea UnionFS ke lera; karolo e 'ngoe le e' ngoe e lokela ho nkuoa e le sistimi e arohaneng ea faele e felletseng e nang le sehlopha sa litsamaiso tse tsoang motsong ka boeona. UnionFS e theha sebaka sa kopano bakeng sa litsamaiso tse ling tsa lifaele mme e lumella lifaele le li-directory ho tsoa lits'ebetsong tse fapaneng tsa faele (tse bitsoang lifereko) hore li kopanngoe ho ba sistimi e le 'ngoe e lumellanang ea faele, pepeneneng ho mosebelisi.

Likahare tsa li-directory tse nang le litsela tse tšoanang li tla hlaha hammoho bukeng e le 'ngoe e kopaneng (sebakeng se le seng sa mabitso) sa sistimi ea faele e hlahisoang.

UnionFS e kopanya mekhahlelo ho latela melao-motheo e latelang:

  • e 'ngoe ea lihlopha e fetoha sekhahla sa boemo bo holimo, karolo ea bobeli le e latelang e fetoha lihlopha tse tlaase;
  • lintho tse lera li fumaneha ho mosebedisi "ho tloha holimo ho ea tlaase", i.e. haeba ntho e kōptjoang e le "ka holimo" lera, e khutlisetsoa, ​​​​ho sa tsotellehe boteng ba ntho e nang le lebitso le le leng "ka tlaase" lera; ho seng joalo ntho ea lera "ka tlaase" e khutlisetsoa; haeba ntho e kōptjoang e le sieo kapa e le sieo, phoso "Ha ho faele e joalo kapa directory" e khutlisitsoeng;
  • lera la ho sebetsa ke "top" e le 'ngoe, ke hore, liketso tsohle tsa mosebedisi ho fetola data li bonahatsoa feela ka lera la boemo bo holimo, ntle le ho ama likahare tsa lihlopha tsa maemo a tlaase.

Docker ke theknoloji e atileng haholo ea ho sebelisa lijana ho tsamaisa lits'ebetso. E fetohile mokhoa o tloaelehileng tšimong, ho haha ​​​​lihlopheng le libaka tsa mabitso tse fanoeng ke Linux kernel.

Docker e re lumella ho kenya lits'ebetso ka potlako le ho sebelisa sistimi ea faele hantle ka ho arola kernel ea OS har'a lijana tsohle, e sebetsa e le lits'ebetso tse arohaneng tsa OS.

Source: www.habr.com

Eketsa ka tlhaloso