Hi uile! Anns a , Gheall mi bruidhinn mu bhith a 'ruith Docker ann an Docker agus na taobhan practaigeach de bhith a' cleachdadh an leasan seo. Tha an t-Ă m ann do ghealladh a chumail. Is dòcha gun cuir neach-devopser eòlach an aghaidh gum bi an fheadhainn a dhâ fheumas Docker taobh a-staigh Docker dĂŹreach aâ cuir air adhart socaid daemon an Docker bhon òstair a-steach don ghobhar agus bidh seo gu leòr ann an 99% de chĂšisean. Ach na dèan cabhag gus briosgaidean a thilgeil orm, oir bruidhnidh sinn mu bhith aâ ruith Docker taobh a-staigh Docker. Tha mòran thagraidhean comasach aig an fhuasgladh seo agus tha an artaigil seo mu dheidhinn aon dhiubh, mar sin suidh air ais agus dĂŹrich do ghĂ irdeanan air do bheulaibh.

An toiseach
Thòisich e uile air feasgar fliuch san t-Sultain nuair a bha mi aâ glanadh an inneal a fhuair mi air mĂ l airson $5 air Digital Ocean, a bha reòta leis gu robh Docker air na 24 gigabytes de dhâ Ă ite diosc a lĂŹonadh leis na h-ĂŹomhaighean agus na soithichean aige. Bâ e an ĂŹoranas gun robh na h-ĂŹomhaighean agus na soithichean sin uile neo-ghluasadach agus nach robh feum orra ach airson coileanadh an tagraidh agam a dhearbhadh a h-uile uair a chaidh dreach Ăšr de leabharlann no frèam a leigeil ma sgaoil. Dhâ fheuch mi ri sgriobtaichean shligean a sgrĂŹobhadh agus clĂ r cron a stèidheachadh airson sgudal a ghlanadh, ach cha do chuidich e: a h-uile uair a thĂ inig e gu crĂŹch gu do-sheachanta le Ă ite diosc an fhrithealaiche agam ag ithe agus an frithealaiche crochte (aig aâ char as fheĂ rr). Aig Ă m air choreigin, thĂ inig mi tarsainn air artaigil mu mar a ruitheas tu Jenkins ann an soitheach agus mar as urrainn dha pĂŹoban togail a chruthachadh agus a dhubhadh Ă s tro socaid daemon docker air a chuir air adhart. Chòrd am beachd rium, ach chuir mi romham a dhol nas fhaide agus feuchainn ri ruith gu dĂŹreach Docker taobh a-staigh Docker. Aig an Ă m sin, bha e coltach riumsa mar fhuasgladh gu tur loidsigeach airson ĂŹomhaighean Docker a luchdachadh sĂŹos agus soithichean a chruthachadh airson a h-uile tagradh a bha a dhĂŹth orm airson deuchainn taobh a-staigh soitheach eile (canaidh sinn inneal stèidse ris). B 'e am beachd soitheach stèidse a thòiseachadh leis a' bhratach -rm, a bhios gu fèin-obrachail a 'toirt air falbh an soitheach gu lèir agus a h-uile stuth a th' ann nuair a thèid a stad. Rinn mi tinkered leis an ĂŹomhaigh Docker bho Docker fhèin ().
Cleachdaich. Cònaichean
Chaidh mi a-mach gus toirt air aâ ghobhar obrachadh mar a bha feum agam agus lean mi air adhart leis na deuchainnean agam, a lean gu grunn gheugan. Bâ e toradh mâ fhèin-chrĂ dh an algairim a leanas:
Bidh sinn aâ cur air bhog an Docker container ann am modh eadar-ghnĂŹomhach.
docker run --privileged -it docker:18.09.6Thoir aire don dreach den t-soitheach, ceum air dheas no clĂŹ agus tionndaidh an DinD agad gu bhith na phumpkin. Gu dearbh, bidh cĂšisean aâ briseadh gu math tric nuair a thèid dreach Ăšr fhoillseachadh.
Feumaidh sinn a dhol a-steach don t-slige sa bhad.Tha sinn aâ feuchainn ri faighinn a-mach dè na soithichean a tha aâ ruith (Freagair: gin), ach ruithidh sinn an Ă ithne co-dhiĂš:
docker psBidh beagan iongnadh ort, ach tha e a âtionndadh a-mach nach eil an deamhan Docker eadhon aâ ruith:
error during connect: Get http://docker:2375/v1.40/containers/json: dial tcp: lookup docker on 192.168.65.1:53: no such hostRuithidh sinn e fhèin:
dockerd &iongnadh mĂŹ-thlachdmhor eile:
failed to start daemon: Error initializing network controller: error obtaining controller instance: failed to create NAT chain DOCKER: Iptables not foundStĂ laich na pasganan iptables agus bash (tha a h-uile dad nas tlachdmhoire a bhith ag obair ann am bash na ann an sh):
apk add --no-cache iptables bashLeig leinn bash a chuir air bhog. Mu dheireadh tha sinn air ais anns an t-slige Ă bhaisteach
Feuchaidh sinn ri Docker a chuir air bhog a-rithist:
dockerd &Bu chòir dhuinn duilleag fhada de logaichean fhaicinn aâ crĂŹochnachadh le:
INFO[2019-11-25T19:51:19.448080400Z] Daemon has completed initialization INFO[2019-11-25T19:51:19.474439300Z] API listen on /var/run/docker.sockBrĂšth Enter. Tha sinn air ais anns aâ bhasgaid.
Bho seo a-mach, is urrainn dhuinn feuchainn ri soithichean eile a chuir air bhog taobh a-staigh ar soitheach Docker, ach dè ma tha sinn airson inneal Docker eile a chuir air bhog taobh a-staigh ar soitheach Docker no rudeigin aâ dol ceĂ rr agus an soitheach a âtuiteam? Tòisich a-rithist.
Sealbhadair DinD agad agus deuchainnean Ăšra
Gus nach bi mi ag ath-aithris na ceumannan gu h-à rd a-rithist agus a-rithist, chruthaich mi an soitheach DinD agam fhèin:
Thug am fuasgladh obrach DinD an comas dhomh Docker a ruith taobh a-staigh Docker gu ath-chuairteach agus deuchainnean nas dà na a dhèanamh.
Tha mi aâ dol a thoirt cunntas air aon deuchainn mar sin (soirbheachail) le bhith aâ ruith MySQL agus Nodejs a-nis.
ChĂŹ an fheadhainn as mĂŹ-fhoighidneach mar a bha e an seo

Mar sin, tòisichidh sinn:
Bidh sinn aâ cur air bhog DinD ann am modh eadar-ghnĂŹomhach. Anns an dreach seo de DinD, feumaidh sinn a h-uile port a dhâ fhaodas na soithichean cloinne againn a chleachdadh a mhapadh le lĂ imh (tha mi ag obair air seo mu thrĂ th)
docker run --privileged -it -p 80:8080 -p 3306:3306 alekslitvinenk/dindBidh sinn aâ faighinn a-steach don bash, Ă s am faod sinn tòiseachadh sa bhad air soithichean cloinne a chuir air bhog.
Cuir air bhog MySQL:
docker run --name mysql -e MYSQL_ROOT_PASSWORD=strongpassword -d -p 3306:3306 mysqlBidh sinn aâ ceangal ris an stòr-dĂ ta san aon dòigh âs a bhiodh sinn aâ ceangal ris gu h-ionadail. Dèan cinnteach gun obraich a h-uile dad.
Cuir air bhog an dĂ rna container:
docker run -d --rm -p 8080:8080 alekslitvinenk/hello-world-nodejs-serverThoir an aire gum bi am mapadh puirt dĂŹreach 8080:8080, leis gu bheil sinn mu thrĂ th air port 80 a mhapadh bhon òstair chun aâ phĂ rant-ghobhar gu port 8080.
Bidh sinn aâ dol gu localhost sa bhrobhsair, dèan cinnteach gu bheil am frithealaiche aâ freagairt âHello World!â
Anns a 'chÚis agam, bha an deuchainn le soithichean Docker neadachaidh gu math dòchasach agus cumaidh mi a' leasachadh a 'phròiseict agus ga chleachdadh airson a bhith air a chuir air dòigh. Tha e coltach riumsa gur e fuasgladh tòrr nas aotrom a tha seo na Kubernetes agus Jenkins X. Ach is e seo mo bheachd cuspaireil.
Tha mi aâ smaoineachadh gu bheil sin uile airson artaigil an latha an-diugh. Anns an ath artaigil bheir mi cunntas nas mionaidiche air deuchainnean le bhith aâ ruith Docker gu ath-chĂšrsach ann an Docker agus aâ cur suas chlĂ ran gu domhainn ann an soithichean neadachaidh.
PS Ma tha am pròiseact seo feumail dhut, feuch an toir thu rionnag dha air GitHub, forc e agus innis dha do charaidean.
Deasaich1 Mearachdan ceartaichte, le fòcas air 2 bhidio
Source: www.habr.com
