Hi uile! Anns a
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.6
Thoir 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 ps
Bidh 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 host
-
Ruithidh 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 found
-
Stà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 bash
-
Leig 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.sock
-
Brù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/dind
Bidh 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 mysql
-
Bidh 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-server
Thoir 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