He taakaro a Docker kaore ranei? He pono tonu ranei?

Всем Привет!

Ka tino hiahia ahau ki te toro tika ki te kaupapa, engari he pai ake te korero iti mo taku korero:

urunga

He kaihōtaka ahau he wheako ki te whakawhanake i nga tono wharangi kotahi o mua, scala/java me nga nodejs i runga i te tūmau.

Mo te wa roa (he tokorua, e toru ranei nga tau), i kii ahau he mana a Docker mai i te rangi, a, i te nuinga o te waa he taputapu tino pai me te mea ka taea e nga kaihanga katoa te whakamahi. Na tenei ka whai ake me whakauru e ia kaiwhakawhanake a Docker ki runga i o raatau miihini rohe. Me pehea taku whakaaro, tirohia nga waahi kua whakairia ki runga i taua hh. Kei ia tuarua he korero mo te docker, a mena kei a koe, koinei to painga whakataetae 😉

I a au e haere ana, he maha nga tangata i tutaki ahau, me o ratou whakaaro rereke ki a Docker me tona puunaha rauwiringa kaiao. Ko etahi i kii he mea watea tenei e whakapumau ana i nga mahi whakawhiti-papa. Ko te tuarua karekau i mohio he aha te take e rere ai i roto i nga ipu, he aha te hua ka puta mai, karekau te tuatoru i aro, karekau i raru (ka tuhi noa ratou i te waehere ka hoki ki te kainga - ka hae ahau ki a ratou, na te ara :)

Nga take mo te whakamahi

He aha ahau i whakamahi ai i te docker? Akene pea mo nga take e whai ake nei:

  • te whakarewanga o te papaa raraunga, 99% o nga tono ka whakamahi
  • te whakarewa i te nginx mo te tohatoha o mua me te takawaenga ki te tuara
  • Ka taea e koe te kohi i te tono ki te ahua docker, ma tenei ka mahi taku tono ki nga waahi katoa e noho ana te docker, ka whakatauhia te raru tohatoha.
  • te kitenga o te ratonga i waho o te pouaka, ka taea e koe te hanga microservices, ia ipu (hono ki te whatunga noa) ka taea te toro atu ki tetahi atu ma te ingoa ingoa, he tino watea.
  • He mea ngahau ki te hanga ipu me te "takaro" ki roto.

Ko te mea kare au e pai mo te docker:

  • Kia mahi taku tono, ka hiahia ahau ki a Docker ake i runga i te tūmau. He aha te take me penei mena ka rere aku tono i runga i te jre, i nga nodejs ranei me te taiao mo ratou kei runga i te tūmau?
  • Mena kei te pirangi au ki te whakahaere i taku (tangata) whakaahua hanga-a-rohe i runga i te tuumau mamao, katahi ka hiahia ahau ki taku ake rehitatanga docker, me mahi te rehita ki tetahi waahi me te whirihora hoki i te https, na te mea ka mahi noa te docker cli ki runga https. Aue ... he kōwhiringa, o te akoranga, ki te whakaora i te whakapakoko rohe mā docker save me tuku noa te ahua ma te scp... Engari he maha nga nekehanga tinana. I tua atu, he rite te ahua o te otinga "karaka" kia puta ra ano to putunga
  • docker-compose. Me whakahaere noa nga ipu. Heoi ano. Kaore e taea e ia tetahi atu mea. Docker-compose he maha nga momo putanga o ana konae, tona ake wetereo. Ahakoa he aha te korero, kaore au e pai ki te panui i a raatau tuhinga. Kaore au e hiahia ki hea atu.
  • i te wa e mahi ana i roto i te roopu, ko te nuinga o nga tangata e tuhi porangi ana i te Dockerfile, kaore e mohio me pehea te keteroki, taapiri i nga mea katoa e hiahiatia ana, kaore e hiahiatia ana ki te ahua, ka riro mai i nga whakaahua kaore i Dockerhub, i tetahi putunga motuhake ranei, hanga etahi docker-compose nga konae me nga papaa raraunga kaore he mea e mau tonu ana. I te wa ano, kei te whakapehapeha nga kaiwhakawhanake he pai a Docker, kei te mahi nga mea katoa mo ratou, a ko te mea nui te tuhi a HR i roto i te waatea: "Ka whakamahia e matou a Docker ka hiahia matou ki tetahi kaitono me taua wheako mahi."
  • Kei te mau tonu ahau i nga whakaaro mo te whakaara i nga mea katoa i Docker: postgresql, kafka, redis. He pouri kaore nga mea katoa e mahi ana i roto i nga ipu, kaore nga mea katoa e ngawari ki te whirihora me te whakahaere. Kei te tautokohia tenei e nga kaiwhakawhanake-tuatoru, kaua ko nga kaihoko ake. Na te ara, ka puta tonu te patai: kaore nga kaihoko e manukanuka ki te pupuri i a raatau hua ki Docker, he aha tenei, tera pea e mohio ana ratou ki tetahi mea?
  • Ka puta ake te patai mo te mau tonu o nga raraunga ipu. katahi ka whakaaro koe, me whakairi noa e ahau te raarangi kaihautu, ka hanga ranei i te rōrahi docker, ka hanga ranei he ipu raraunga kei aianei deprecated? Mena ka whakairihia e ahau he whaiaronga, katahi au me tino mohio ko te uid me te gid o te kaiwhakamahi kei roto i te ipu ka rite ki te id o te kaiwhakamahi nana i whakarewa te ipu, ki te kore ka hangaia nga konae i hangaia e te ipu me nga mana pakiaka. Mena ka whakamahi ahau volume katahi ka hanga noa nga raraunga i etahi /usr/* a ka pera ano nga korero me te uid me te gid pera i te keehi tuatahi. Mena kei te whakarewahia e koe tetahi waahanga tuatoru, me panui koe i nga tuhinga me te rapu i te whakautu ki te patai: "Kei hea nga raarangi pouaka ka tuhia e te waahanga nga konae?"

I nga wa katoa kaore au i pai ki te mea kua roa rawa taku mahi ki a Docker i te wahanga tuatahi: I whakaaro ahau me pehea te whakarewa i nga ipu, he aha nga whakaahua ka whakarewahia mai, i hanga Makefiles kei roto nga ingoa ingoa ki nga whakahau Docker roa. I kino ahau ki te docker-compose na te mea kaore au i pai ki te ako i tetahi atu taputapu i roto i te rauwiringa kaiao docker. ME docker-compose up I raru ahau, ina koa ka tutaki tonu raua ki reira build hangahanga, kaua ki nga whakaahua kua whakaemihia. Ko nga mea katoa i tino hiahia ahau ko te hanga hua me te tere. Engari kaore au i mohio me pehea te whakamahi docker.

Te Whakataki Ansible

I tata nei (e toru marama ki muri), i mahi tahi ahau me tetahi roopu DevOps, tata ki nga mema katoa he ahua kino ki a Docker. Mo nga take:

  • ture docker iptables (ahakoa ka taea e koe te whakakore i te daemon.json)
  • Ko te docker he putea a kaore matou e whakahaere i te mahi
  • ki te tukinga te daemon docker, ka pakaru nga ipu katoa me nga hanganga
  • kahore he take mo te docker
  • He aha te take karekau mena he miihini Ansible me te mariko

I taua mahi ano, i mohio ahau ki tetahi atu taputapu - Ansible. I rongo ahau i tetahi wa, engari kaore au i ngana ki te tuhi i aku pukapuka takaro. Inaianei kua timata ahau ki te tuhi i aku mahi katahi ka tino rerekee taku tirohanga! Na te mea i mohio ahau: He waahanga a Ansible mo te whakahaere i nga ipu docker kotahi, te hanga whakaahua, nga whatunga, me etahi atu, ka taea te whakahaere ipu ehara i te rohe anake, engari i runga i nga kaitoro mamao! Karekau he rohenga o taku harikoa - I kitea e ahau he taputapu NORMAL ka maka atu aku konae Makefile me nga konae tito docker, ka whakakapia ki nga mahi yaml. I whakaitihia te waehere ma te whakamahi i nga hanga penei loop, when, Me ētahi atu

Docker mo te whakahaere i nga waahanga tuatoru penei i nga papaunga raraunga

No tata nei ahau i mohio ai ki nga ssh tunnels. I puta mai he tino ngawari ki te "whakamua" te tauranga o te tūmau mamao ki te tauranga rohe. Ka taea e te tūmau mamao he miihini i roto i te kapua, he miihini mariko ranei e rere ana i VirtualBox. Mena kei te hiahia taku hoa mahi, ko au ranei he papaa raraunga (tetahi atu waahanga tuatoru ranei), ka taea noa e matou te tiimata i te tūmau me tenei waahanga ka whakaweto i te wa kaore e hiahiatia te tūmau. He rite tonu te painga o te tuku tauranga ki te putunga korero e rere ana i roto i te ipu docker.

Ka tukuna e tenei whakahau taku tauranga rohe ki tetahi tūmau mamao e whakahaere ana i te postgresql:

ssh -L 9000: localhost:5432 [email tiakina]

Ma te whakamahi i te tūmau mamao ka whakatauhia te raru ki te whakawhanaketanga o te roopu. Ka taea e te maha o nga kaiwhakawhanake te whakamahi i taua tuumau i te wa kotahi; kaore e tika kia taea e raatau te whirihora i te postgresql, te mohio ki a Docker me etahi atu mea uaua. I runga i te tūmau mamao, ka taea e koe te whakauru i te paparangi raraunga ano i Docker ake, mena he uaua ki te whakauru i tetahi putanga motuhake. Ko nga mea katoa e hiahiatia ana e nga kaiwhakawhanake ko te tuku uru ssh!

I panuihia e au he iti noa nga mahi a nga kauhanga SSH o te VPN auau! Ka taea e koe te whakauru noa i te OpenVPN, i etahi atu mahi VPN ranei, whakaturia te hanganga me te hoatu ki nga kaihanga hei whakamahi. He tino pai tenei!

Waimarie, ka hoatu e AWS, GoogleCloud me etahi atu he tau mo te whakamahi kore utu, no reira whakamahia! He iti noa mena ka whakawetohia e koe ina kore e whakamahia. I whakaaro tonu ahau he aha ahau ka hiahia ai ki tetahi tūmau mamao penei i te gcloud, te ahua nei kua kitea e au.

Hei miihini mariko o te rohe, ka taea e koe te whakamahi i te Alpine ano, e whakamahia kaha ana i roto i nga ipu docker. Ana, etahi atu tohatoha mama ranei kia tere ake ai te mahi miihini.

Rarangi o raro: ka taea e koe me te whakahaere i nga papaa raraunga me etahi atu hanganga pai i runga i nga kaitoro mamao, i te pouaka mariko ranei. Kare au e hiahia kaitautoko mo enei kaupapa.

He iti mo nga whakaahua docker me te tohatoha

Kua oti kē i ahau te tuhituhi he tuhinga i hiahia ahau ki te whakapuaki ko te whakamahi i nga whakaahua docker kaore he taurangi. Ko nga whakaahua Docker e hiahiatia ana hei hanga i tetahi ipu docker. Mena kei te whakahou koe ki te ahua docker, kei te whakahou koe ki te whakamahi i nga ipu docker ka whakamahia e koe anake.

Kua kite koe i nga waahi katoa e kawe ana nga kaiwhakawhanake rorohiko i a raatau hua ki te ahua docker anake?
Ko te hua o te nuinga o nga hua ko nga konae takirua mo tetahi papaahi motuhake; ka taapiri noa atu ki te ahua docker, he mea tuku iho mai i te papanga e hiahiatia ana. Kua whakaaro koe he aha te maha o nga whakaahua rite kei runga dockerhub? Whakauruhia te nginx hei tauira, ka kite koe i nga whakaahua 100500 mai i nga taangata rereke. Ko enei taangata kaore i whakawhanake i te nginx ake, ka taapirihia e ratau te nginx whaimana ki o raatau ahua docker me te whakamaarama ki o raatau ake whirihora kia pai ai te tuku ipu.

I te nuinga o te waa, ka taea e koe te penapena i roto i te tgz, mena ka hiahia tetahi ki te whakahaere i roto i te docker, katahi ka taapirihia te tgz ki te Dockerfile, ka tuku iho mai i te taiao e hiahiatia ana me te hanga i etahi atu paina e kore e huri i te tono ake i tgz. Ko te tangata ka hanga he ahua docker ka mohio he aha te tgz me nga mea e tika ana kia mahia e ia. Koinei taku whakamahi docker konei

Raina raro: Kaore au e hiahia ki te rehita docker, ka whakamahi ahau i etahi momo S3, ko te rokiroki konae noa ranei penei i te google drive / dropbox

Docker kei CI

He rite nga kamupene katoa i mahi ai ahau. I te nuinga o te waa he hoko kai. Arā, kotahi te tono, kotahi te tāpae hangarau (he pai, he tokorua, e toru ranei nga reo hotaka).

Ka whakamahia e enei kamupene he docker i runga i o raatau tuunga kei reira te mahi CI. Pātai: He aha koe me hanga kaupapa ki roto i te ipu docker ki runga i o kaimau? He aha e kore ai e whakarite noa i tetahi taiao mo te hanga, hei tauira, tuhia he pukapuka takaro Ansible ka whakauru i nga putanga e tika ana mo nga nodejs, php, jdk, kape nga taviri ssh, me etahi atu ki te tūmau ka mahia te hanga?

Inaianei kei te mohio ahau kei te pupuhi tenei i ahau ki te waewae, na te mea kaore he hua o te docker me tana wehe. Nga raru i pa ki a au me CI i te docker:

  • ano ka hiahia koe ki te hanga whakaahua docker. me rapu koe mo tetahi ahua me tuhi ranei i to ake ake dockerfile.
  • 90% e hiahia ana koe ki te tuku i etahi taviri ssh, raraunga ngaro kaore koe e hiahia ki te tuhi ki te ahua docker.
  • ka hangaia te ipu ka mate, ka ngaro nga keteroki katoa i te taha. ko te hanga e whai ake nei ka tango ano i nga whakawhirinakitanga katoa o te kaupapa, he roa te waa me te kore e whai hua, he moni te waa.

Kaore nga kaiwhakawhanake e hanga kaupapa ki roto i nga ipu docker (he mea powhiriwhiri ahau, he tino pouri ahau mo au i mua xD). I roto i te java ka taea te maha o nga putanga me te whakarereke me te whakahau kotahi ki te mea e hiahia ana koe inaianei. He rite ano ki nga nodejs, he nvm.

mutunga

E whakapono ana ahau he taputapu tino kaha, he ngawari hoki te docker, koinei tana whakahokinga (he ahua ke, ae). Ma tana awhina, ka ngawari nga kamupene ki te hono ki runga ka whakamahi i nga waahi e hiahiatia ana me te kore e hiahiatia. Ka whakarewahia e nga Kaihanga a raatau ipu, etahi o o raatau taiao, katahi ka rere pai katoa ki roto ki te CI me te hanga. Kei te tuhi te roopu DevOps i etahi momo waehere hei whakahaere i enei ipu.

Whakamahia te docker ki runga anake te mea hou atamira i roto i to rerengamahi, kaua e toia ki roto i te kaupapa i te timatanga. Kaore e whakaoti i o raru pakihi. Ka nekehia e ia nga raruraru ki tetahi atu taumata, ka tuku i ana ake otinga, ka mahi takirua koe.

I te wa e hiahiatia ana te docker: I tae ahau ki te whakatau he tino pai te docker ki te arotau i tetahi mahi, engari kaore i te hanga i nga mahi taketake

Mena ka whakatau tonu koe ki te whakamahi docker, na:

  • kia tino tupato
  • kaua e akiaki nga kaiwhakawhanake ki te whakamahi docker
  • tohuhia tana whakamahinga ki te waahi kotahi, kaua e horahia ki nga putunga Dockefile me te docker-compose katoa

PS:

  • No tata nei ahau i tutaki ai packer a e kii ana ratou he pai te mahi me te Ansible ka taea e koe te whakakotahi i te mahi hanga whakaahua (tae atu ki te ahua docker)
  • mo te docker, tuhinga whakamere

Mauruuru koe mo te panui, ko taku hiahia kia marama nga whakatau i roto i o mahi me o ra mahi whai hua!

Source: will.com

Tāpiri i te kōrero