ʻO ka hoʻomaopopo ʻana iā Docker

Ua hoʻohana au iā Docker no kekahi mau mahina i kēia manawa e hoʻolālā i ke kaʻina hana hoʻomohala / hoʻouna ʻana i nā papahana pūnaewele. Hāʻawi wau i ka poʻe heluhelu Habrakhabr i kahi unuhi o ka ʻatikala hoʻomaka e pili ana i ka docker - "Hoʻomaopopo i ka docker".

He aha ka docker?

ʻO Docker kahi kahua ākea no ka hoʻomohala ʻana, hoʻopuka, a me ka hana ʻana i nā noi. Hoʻolālā ʻia ʻo Docker e hoʻopuka wikiwiki i kāu mau noi. Me ka docker, hiki iā ʻoe ke hoʻokaʻawale i kāu noi mai kāu ʻenehana a mālama i ka ʻōnaehana ma ke ʻano he noi hoʻokele. Kōkua ʻo Docker iā ʻoe e hoʻouna wikiwiki i kāu code, hoʻāʻo wikiwiki, hoʻouna wikiwiki i nā noi, a hoʻemi i ka manawa ma waena o ke kākau ʻana i nā code a me nā code holo. Hana ʻo Docker i kēia ma o kahi pahu virtualization platform māmā, me ka hoʻohana ʻana i nā kaʻina hana a me nā pono hana e kōkua iā ʻoe e hoʻokele a hoʻokipa i kāu mau noi.

Ma kāna kumu, ʻae ʻo docker iā ʻoe e holo kokoke i kēlā me kēia noi, kaʻawale palekana i loko o kahi pahu. ʻO ka hoʻokaʻawale palekana e hiki ai iā ʻoe ke holo i nā pahu he nui ma ka host hoʻokahi i ka manawa like. ʻO ke ʻano maʻalahi o ka ipu, e holo ana me ka ʻole o ke kaumaha o kahi hypervisor, hiki iā ʻoe ke loaʻa hou aʻe mai kāu lako.

Hiki ke hoʻohana ʻia ka pahu virtualization platform a me nā mea hana i kēia mau hihia:

  • e hoʻopili i kāu noi (a me nā ʻāpana āu e hoʻohana ai) i loko o nā pahu docker;
  • ka hāʻawi ʻana a me ka hāʻawi ʻana i kēia mau pahu i kāu mau hui no ka hoʻomohala ʻana a me ka hoʻāʻo ʻana;
  • ka waiho ʻana i kēia mau ipu ma kāu mau kahua hana, ma nā kikowaena ʻikepili a ma nā ao.

He aha kaʻu e hoʻohana ai i ka docker?

Hoʻopuka koke i kāu mau noi

He maikaʻi ʻo Docker no ka hoʻonohonoho ʻana i ka pōʻai hoʻomohala. Hāʻawi ʻo Docker i nā mea hoʻomohala e holo i nā ipu kūloko me nā noi a me nā lawelawe. ʻO ia ka mea e hiki ai iā ʻoe ke hoʻohui pū me ke kaʻina hana o ka hoʻohui mau ʻana a me ke kahe hana hoʻolaha.

No ka laʻana, kākau kāu mau mea hoʻomohala i nā code kūloko a kaʻana like i kā lākou hoʻomohala hoʻomohala (kahi hoʻonohonoho o nā kiʻi Docker) me nā hoa hana. Ke mākaukau lākou, pana lākou i ke code a me nā ipu i ka kahua hoʻāʻo a holo i nā hoʻokolohua pono. Mai ka pūnaewele ho'āʻo, hiki iā lākou ke hoʻouna i nā code a me nā kiʻi i ka hana.

ʻOi aku ka maʻalahi o ka waiho ʻana a me ka wehe ʻana

ʻO ka paepae pahu pahu docker e maʻalahi i ka lawe ʻana i kāu uku. Hiki i nā pahu Docker ke holo ma kāu mīkini kūloko, ʻoiaʻiʻo a i ʻole ma ka mīkini virtual ma kahi kikowaena data, a i ʻole ma ke ao.

ʻO ke ʻano portability a me ka māmā o ka docker e maʻalahi i ka hoʻokele dynamically i kāu hana. Hiki iā ʻoe ke hoʻohana i ka docker e kau a pani i kāu noi a lawelawe paha. ʻO ka wikiwiki o ka docker hiki ke hana i kēia ma kahi kokoke i ka manawa maoli.

ʻO nā ukana kiʻekiʻe a ʻoi aku ka nui o nā ukana

He māmā a wikiwiki hoʻi ʻo Docker. Hāʻawi ia i kahi koho kūʻokoʻa a maikaʻi hoʻi i nā mīkini virtual-based hypervisor. He mea maikaʻi loa ia i nā kaiapuni haʻahaʻa kiʻekiʻe, no ka laʻana, ke hana ʻana i kāu ao ponoʻī a i ʻole platform-as-service. Akā, he mea pono no nā noi liʻiliʻi a me ka liʻiliʻi inā makemake ʻoe e loaʻa hou aʻe mai nā kumuwaiwai āu i loaʻa ai.

Nā ʻāpana Docker Nui

Aia ʻo Docker i ʻelua mau mea nui:

  • ʻO Docker: kahi kahua hoʻomākaʻikaʻi punaewele;
  • ʻO Docker Hub: ʻO kā mākou platform-as-a-service no ka hāʻawi ʻana a me ka mālama ʻana i nā pahu Docker.

Nānā! Hāʻawi ʻia ʻo Docker ma lalo o ka laikini Apache 2.0.

Hoʻolālā Docker

Ke hoʻohana nei ʻo Docker i kahi hoʻolālā mea kūʻai aku. Ke kamaʻilio nei ka mea kūʻai aku ʻo Docker me ka Docker daemon, ka mea e lawe i ke kaumaha o ka hana ʻana, ka holo ʻana, a me ka hāʻawi ʻana i kāu mau ipu. Hiki i ka mea kūʻai a me ke kikowaena ke holo ma ka ʻōnaehana like, hiki iā ʻoe ke hoʻohui i ka mea kūʻai aku i kahi daemon docker mamao. Kūkākūkā ka mea kūʻai aku a me ke kikowaena ma o kahi kumu a i ʻole RESTful API.

ʻO ka hoʻomaopopo ʻana iā Docker

Docker daemon

E like me ka mea i hōʻike ʻia ma ke kiʻikuhi, holo ka daemon ma ka mīkini hoʻokipa. ʻAʻole pili pono ka mea hoʻohana me ke kikowaena, akā hoʻohana i ka mea kūʻai aku no kēia.

Mea kūʻai Docker

ʻO ka mea kūʻai aku ʻo Docker, ka papahana docker, ʻo ia ke kikowaena nui iā Docker. Loaʻa iā ia nā kauoha mai ka mea hoʻohana a launa pū me ka daemon docker.

Loko docker

No ka hoʻomaopopo ʻana i ke ʻano o ka docker, pono ʻoe e ʻike e pili ana i ʻekolu mau ʻāpana:

  • nā kiʻi
  • kakau inoa
  • mau pahu hopu

Nā kiʻi

ʻO ke kiʻi Docker he palapala heluhelu-wale nō. No ka laʻana, aia paha ke kiʻi i ka ʻōnaehana hana ʻo Ubuntu me Apache a me kahi noi ma luna. Hoʻohana ʻia nā kiʻi e hana i nā ipu. Maʻalahi ʻo Docker i ka hana ʻana i nā kiʻi hou, hoʻohou i nā kiʻi i loaʻa, a i ʻole hiki iā ʻoe ke hoʻoiho i nā kiʻi i hana ʻia e nā poʻe ʻē aʻe. ʻO nā kiʻi nā ʻāpana o kahi kūkulu docker.

ʻO ka hoʻopaʻa inoa

Mālama ka Docker registry i nā kiʻi. Aia nā papa inoa lehulehu a pilikino kahi e hiki ai iā ʻoe ke hoʻoiho a hoʻouka paha i nā kiʻi. ʻO kahi papa inoa Docker lehulehu Hub hoʻokau. Aia kahi hōʻiliʻili nui o nā kiʻi i mālama ʻia ma laila. E like me kou ʻike, hiki iā ʻoe ke hana i nā kiʻi a i ʻole hiki iā ʻoe ke hoʻohana i nā kiʻi i hana ʻia e nā poʻe ʻē aʻe. ʻO nā kākau inoa he mea hoʻolaha.

Nā pahu pahu

Ua like nā pahu me nā papa kuhikuhi. Aia i loko o nā pahu nā mea a pau e pono ai ka polokalamu e holo ai. Hana ʻia kēlā me kēia pahu mai kahi kiʻi. Hiki ke hana, hoʻomaka, hoʻōki, neʻe a holoi ʻia paha nā pahu. Hoʻokaʻawale ʻia kēlā me kēia pahu a hāʻawi i kahi kahua paʻa no ka noi. ʻO nā pahu nā ʻāpana o ka hana.

No laila pehea e hana ai ʻo Docker?

I kēia manawa ua ʻike mākou:

  • hiki iā mākou ke hana i nā kiʻi i loaʻa ai kā mākou mau noi;
  • hiki iā mākou ke hana i nā pahu mai nā kiʻi e holo i nā noi;
  • Hiki iā mākou ke hāʻawi i nā kiʻi ma o Docker Hub a i ʻole ke kākau inoa kiʻi ʻē aʻe.

E ʻike kākou pehea e hui pū ai kēia mau ʻāpana.

Pehea ka hana ana o ke kii?

Ua ʻike mua mākou he kiʻi heluhelu-wale nō ke kiʻi kahi i hana ʻia ai kahi ipu. Loaʻa i kēlā me kēia kiʻi kahi hoʻonohonoho pae. Hoʻohana ʻo Docker union file system e hoʻohui i kēia mau pae i hoʻokahi kiʻi. ʻO ka ʻōnaehana faila Union e ʻae i nā faila a me nā papa kuhikuhi mai nā ʻōnaehana faila like ʻole (nā lālā like ʻole) e uhi pono ʻia, e hana ana i kahi ʻōnaehana faila pili.

ʻO kekahi kumu maʻalahi ka docker no ka mea hoʻohana ia i nā papa e like me kēia. Ke hoʻololi ʻoe i ke kiʻi, e like me ka hoʻonui ʻana i kahi noi, hana ʻia kahi papa hou. No laila, me ka hoʻololi ʻole ʻana i ke kiʻi holoʻokoʻa a i ʻole ke kūkulu hou ʻana iā ia, e like me kāu e hana ai me kahi mīkini virtual, hoʻohui ʻia a hoʻonui ʻia paha ka papa. A ʻaʻole pono ʻoe e puʻunaue i ke kiʻi hou holoʻokoʻa, hoʻolaha wale ʻia ka mea hou, e maʻalahi a wikiwiki hoʻi ka hoʻolaha ʻana i nā kiʻi.

Aia ma ka puʻuwai o kēlā me kēia kiʻi he kiʻi kumu. No ka laʻana, ʻo ubuntu, ke kiʻi kumu o Ubuntu, a i ʻole fedora, ke kiʻi kumu o ka māhele Fedora. Hiki iā ʻoe ke hoʻohana i nā kiʻi i kumu no ka hana ʻana i nā kiʻi hou. No ka laʻana, inā he kiʻi apache kāu, hiki iā ʻoe ke hoʻohana iā ia ma ke ʻano he kiʻi kumu no kāu mau polokalamu pūnaewele.

Nānā! Lawe pinepine ʻo Docker i nā kiʻi mai ka papa inoa Docker Hub.

Hiki ke hana ʻia nā kiʻi Docker mai kēia mau kiʻi kumu; ke kāhea nei mākou i nā ʻanuʻu e hana i kēia mau ʻōlelo kuhikuhi. Hoʻokumu kēlā me kēia ʻōlelo aʻo i kahi kiʻi a pae hou. Penei na kuhikuhi:

  • kauoha holo
  • hoʻohui i kahi faila a papa kuhikuhi
  • hana ʻana i kahi ʻano hoʻololi kaiapuni
  • nā ʻōlelo aʻoaʻo i ka mea e holo ai ke hoʻokuʻu ʻia ka pahu o kēia kiʻi

Mālama ʻia kēia mau ʻōlelo i loko o kahi faila Dockerfile. Heluhelu ʻo Docker i kēia Dockerfile, ke kūkulu ʻoe i ke kiʻi, e hoʻokō i kēia mau kuhikuhi a hoʻihoʻi i ke kiʻi hope loa.

Pehea e hana ai ka papa inoa docker?

ʻO ka registry kahi waihona no nā kiʻi docker. Ke hana ʻia ke kiʻi, hiki iā ʻoe ke hoʻolaha iā ia i ka lehulehu Docker Hub registry a i ʻole kāu kākau inoa pilikino.

Me ka mea kūʻai docker, hiki iā ʻoe ke ʻimi i nā kiʻi i paʻi ʻia a hoʻoiho iā lākou i kāu mīkini docker e hana i nā ipu.

Hāʻawi ʻo Docker Hub i nā waihona kiʻi lehulehu a pilikino. Loaʻa ka huli ʻana a me ka hoʻoiho ʻana i nā kiʻi mai nā waihona lehulehu i nā mea a pau. ʻAʻole i hoʻokomo ʻia nā ʻike o nā waihona pilikino i nā hopena hulina. A ʻo ʻoe wale nō a me kāu mau mea hoʻohana e hiki ke loaʻa i kēia mau kiʻi a hana i nā pahu mai ia mau mea.

Pehea ka hana o ka pahu?

Aia i loko o kahi pahu kahi ʻōnaehana hana, nā faila mea hoʻohana, a me ka metadata. E like me kā mākou ʻike, hana ʻia kēlā me kēia pahu mai kahi kiʻi. Hōʻike kēia kiʻi i ka docker i ka mea i loko o ka ipu, ke kaʻina hana e hoʻomaka ai, i ka wā e hoʻomaka ai ka ipu, a me nā ʻikepili hoʻonohonoho ʻē aʻe. Heluhelu-wale ke kii Docker. Ke hoʻomaka ʻo docker i kahi pahu, hana ia i kahi papa heluhelu / kākau ma luna o ke kiʻi (me ka hoʻohana ʻana i ka ʻōnaehana file union e like me ka ʻōlelo ma mua) kahi e holo ai ka noi.

He aha ka hana ke hoʻomaka ka ipu?

A i ʻole ka hoʻohana ʻana i ka polokalamu docker, a i ʻole ka hoʻohana ʻana i ka RESTful API, ʻōlelo ka mea kūʻai aku i ka daemon docker e hoʻomaka i ka ipu.

$ sudo docker run -i -t ubuntu /bin/bash

E nānā kākou i kēia kauoha. Hoʻomaka ka mea kūʻai aku me ke kauoha docker, me ke koho run, e ʻōlelo ana e hoʻokuʻu ʻia kahi pahu hou. ʻO nā koi liʻiliʻi no ka holo ʻana i kahi ipu ʻo ia nā ʻano:

  • ʻo ke kiʻi e hoʻohana ai e hana i ka ipu. I ko mākou hihia ubuntu
  • ke kauoha āu e makemake ai e holo ke hoʻomaka ka ipu. I ko mākou hihia /bin/bash

He aha ka hana ma lalo o ka puʻupuʻu ke holo mākou i kēia kauoha?

Hana ʻo Docker i kēia:

  • hoʻoiho i ke kiʻi ubuntu: nānā docker no ka loaʻa ʻana o nā kiʻi ubuntu ma ka mīkini kūloko, a inā ʻaʻole i laila, a laila hoʻoiho mai ia Hub hoʻokau. Inā he kiʻi, hoʻohana ia e hana i kahi pahu;
  • hana i ipu: ke loaʻa ke kiʻi, hoʻohana ʻo docker iā ia e hana i kahi pahu;
  • hoʻomaka i ka waihona waihona a kau i ka pae heluhelu wale nō: hana ʻia ka ipu i loko o ka ʻōnaehana faila a hoʻohui ʻia ke kiʻi i ka pae heluhelu wale nō;
  • hoʻomaka i ka pūnaewele / alahaka: hana i kahi kikowaena pūnaewele e hiki ai i ka docker ke kamaʻilio me ka mīkini hoʻokipa;
  • Hoʻonohonoho i ka helu IP: loaʻa a hoʻonohonoho i ka helu wahi;
  • Hoʻomaka i ke kaʻina hana i ʻōlelo ʻia: hoʻomaka i kāu noi;
  • Nā kaʻina hana a hoʻopuka mai kāu noi: hoʻopili a hoʻopaʻa i ka hoʻokomo maʻamau, ka hoʻopuka, a me ke kahawai hewa o kāu noi i hiki iā ʻoe ke nānā i ke ʻano o kāu noi.

Loaʻa iā ʻoe kahi pahu hana. Hiki iā ʻoe ke hoʻokele i kāu pahu, e launa pū me kāu noi. Ke hoʻoholo ʻoe e hoʻōki i ka noi, e holoi i ka ipu.

ʻenehana i hoʻohana ʻia

Ua kākau ʻia ʻo Docker ma Go a hoʻohana i kekahi mau hiʻohiʻona o ka Linux kernel e hoʻokō i ka hana ma luna.

Nā inoa inoa

Hoʻohana ʻo Docker i ka ʻenehana namespaces e hoʻonohonoho i nā wahi hana kaʻawale, i kapa ʻia mākou he pahu. Ke hoʻomaka mākou i kahi pahu, hana ʻo docker i kahi papa inoa no kēlā pahu.

Hoʻokumu kēia i kahi papa kaʻawale, me kēlā me kēia ʻaoʻao o ka pahu e holo ana ma kona inoa ponoʻī a ʻaʻole i loaʻa i ka ʻōnaehana waho.

Ka papa inoa o kekahi mau papa inoa i hoʻohana ʻia e docker:

  • pid: e hoʻokaʻawale i ke kaʻina hana;
  • upena: no ka mālama ʻana i nā kikowaena pūnaewele;
  • ipc: e mālama i nā kumuwaiwai IPC. (ICP: InterProccess Communication);
  • mnt: e mālama i nā wahi mauna;
  • utc: e hoʻokaʻawale i ka kernel a me ka mana o ka mana o ka hanauna (UTC: Unix timesharing system).

Nā hui hoʻomalu

Hoʻohana pū ʻo Docker i ka ʻenehana cgroups a i ʻole nā ​​hui hoʻomalu. ʻO ke kī i ka holo ʻana i kahi noi ma kahi kaʻawale ʻo ka hāʻawi ʻana i ka noi me nā kumuwaiwai āu e makemake ai e hoʻolako. ʻO kēia ka mea e hōʻoia ai e lilo nā ipu i mau hoalauna maikaʻi. ʻAe nā hui hoʻomalu iā ʻoe e kaʻana like i nā kumuwaiwai lako lako a, inā pono, hoʻonohonoho i nā palena a me nā kapu. No ka laʻana, e kaupalena i ka nui o ka hoʻomanaʻo no ka ipu.

Pūnaehana Kōnae Hui

ʻO Union File Sysem a i ʻole UnionFS kahi ʻōnaehana faila e hana ana ma ka hana ʻana i nā papa, e hoʻomāmā a wikiwiki hoʻi. Hoʻohana ʻo Docker i ka UnionFS e hana i nā poloka i kūkulu ʻia ai ka ipu. Hiki iā Docker ke hoʻohana i nā ʻano like ʻole o UnionFS me: AUFS, btrfs, vfs a me DeviceMapper.

Nā ʻano pahu pahu

Hoʻohui ʻo Docker i kēia mau ʻāpana i kahi wīwī a mākou i kapa ai i ka ʻano pahu. Kāhea ʻia ka ʻano paʻamau libcontainer. Kākoʻo ʻo Docker i ka ʻano pahu kuʻuna ma Linux me ka hoʻohana ʻana LXC. I ka wā e hiki mai ana, hiki iā Docker ke kākoʻo i nā ʻano pahu pahu ʻē aʻe. No ka laʻana, hoʻohui pū me BSD Jails a i ʻole Solaris Zones.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka