Sida aan ugu orday Docker gudaha Docker iyo waxa ka soo baxay

Salaamu caleykum In uu maqaal hore, Waxaan ballan qaaday inaan ka hadlo socodsiinta Docker ee Docker iyo dhinacyada la taaban karo ee isticmaalka casharkan. Waa markii aad ballantaada oofin lahayd. Khabiir khibrad leh ayaa laga yaabaa inuu diido in kuwa u baahan Docker gudaha Docker ay si fudud uga soo gudbiyaan godka daemon ee Docker ee martida loo yahay weelka taasina waxay ku filnaan doontaa 99% kiisaska. Laakiin ha ku degdegin inaad igu tuurto buskud, sababtoo ah waxaan ka hadli doonaa run ahaantii ku socodsiinta Docker gudaha Docker. Xalkani wuxuu leeyahay codsiyo badan oo suurtagal ah, maqaalkani wuxuu ku saabsan yahay mid ka mid ah, markaa fadhiiso oo toosi gacmahaaga hortaada.

Sida aan ugu orday Docker gudaha Docker iyo waxa ka soo baxay

Начало

Waxa ay dhamaan bilaabmeen fiidnimadii Sebtembar oo roob da’ay markii aan nadiifinayay mishiinkii aan ku kiraystay $5 ee Badweynta Dijital ah, kaas oo barafoobay sababtuna ay tahay in Docker uu ka buuxiyay dhammaan 24 gigabytes ee bannaan diskooga sawirradeeda iyo weelasheeda. Yaabka yaabka leh waxa uu ahaa in dhammaan sawiradan iyo weelashaas ay ahaayeen kuwo ku meel gaadh ah oo loo baahnaa oo kaliya in la tijaabiyo waxqabadka codsigayga mar kasta oo la soo saaro nooc cusub oo maktabad ama qaab dhismeed ah. Waxaan isku dayay inaan qoro qoraallada qolofka oo aan dejiyo jadwal cron ah si aan u nadiifiyo qashinka, laakiin ma aysan caawin: mar kasta oo ay lama huraan tahay waxay ku dhammaatay booska diskka server-kayga oo la cunay iyo server-ka oo laalaada (ugu fiican). Mararka qaar, waxaan la kulmay maqaal ku saabsan sida loo socodsiiyo Jenkins weelka dhexdiisa iyo sida ay u abuuri karto oo u tirtiri karto tuubooyinka dhismaha iyada oo loo marayo godka daemon-ka ee docker ee loo soo gudbiyay. Waan ka helay fikradda, laakiin waxaan go'aansaday inaan sii socdo oo aan isku dayo inaan tijaabiyo inaan si toos ah ugu socdo Docker gudaha Docker. Waqtigaas, waxay iigu muuqatay xal macquul ah oo dhammaystiran si aan u soo dejiyo sawirada Docker oo aan u abuuro weelasha dhammaan codsiyada aan u baahanahay si aan u tijaabiyo gudaha weel kale (aan u yeerno weel dhejis ah). Fikradda waxay ahayd in la bilaabo weelka wax lagu dhejiyo oo leh calanka -rm, kaas oo si toos ah u tirtiraya dhammaan weelka iyo dhammaan waxa ku jira marka la joojiyo. Waxaan la yaabay sawirka Docker ee Docker laftiisa (https://hub.docker.com/_/docker), laakiin waxay noqotay mid aad u dhib badan oo weligay ma suurtagelin in aan u shaqeeyo sidii aan ugu baahnaa oo waxaan doonayay inaan u socdo dhammaan jidka.

Ku celceli. Cones

Waxa aan damcay in aan weelku u shaqeeyo sidii aan u baahnaa waxana aan sii watay tijaabooyinkeygii, taas oo keentay in aan tiro badan oo burooyin ah. Natiijadii jidh-dilkaydu waxay ahayd algorithm-ka soo socda:

  1. Waxaan ku bilownay weelka Docker qaab is dhexgal ah.

    docker run --privileged -it docker:18.09.6

    U fiirso nooca weelka, u gudub midig ama bidix oo DinD-gaagu wuxuu isu beddelaa bocorka. Dhab ahaantii, arrimuhu way jabaan badanaa marka nooc cusub la soo saaro.
    Waa inaan isla markiiba galnaa qolofta.

  2. Waxaan isku dayeynaa inaan ogaano weelasha shaqeynaya (Jawaab: midna), laakiin aan wadno amarka:

    docker ps

    Wax yar ayaad la yaabi doontaa, laakiin waxay soo baxday in Docker daemon aanu xitaa soconayn:

    error during connect: Get http://docker:2375/v1.40/containers/json: dial tcp: lookup docker on 
    192.168.65.1:53: no such host

  3. Aan iska wadno.

    dockerd &

    Yaab kale oo aan fiicnayn:

    failed to start daemon: Error initializing network controller: error obtaining controller instance: failed 
    to create NAT chain DOCKER: Iptables not found

  4. Ku rakib baakadaha iptables iyo bash (wax walbaa aad bay ugu faraxsan yihiin in lagu shaqeeyo bash marka loo eego sh):

    apk add --no-cache iptables bash

  5. Aan bilowno bash. Ugu dambeyntii waxaan ku soo laabannay qolofkii caadiga ahaa

  6. Aan isku dayno inaan markale bilowno Docker:

    dockerd &

    Waa in aan aragnaa xaashi dheer oo lod ah oo ku dhammaanaysa:

    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

  7. Riix Gelida Waxaan ku soo laabannay bashkii.

Hadda wixii ka dambeeya, waxaan isku dayi karnaa inaan weel kale ku ridno weelka Docker-ka, laakiin ka waran haddii aan rabno inaan ku ridno weel kale oo Docker gudaha weelka Docker-ka ama wax qaldamaan oo weelku shil galo? Mar kale bilow.

Weel DinD iska leh iyo tijaabooyin cusub

Sida aan ugu orday Docker gudaha Docker iyo waxa ka soo baxay
Si aan uga fogaado in aan ku celceliyo tillaabooyinka kore, waxaan sameeyay weelkayga DinD:

https://github.com/alekslitvinenk/dind

Xalka DinD ee shaqeeya wuxuu i siiyay awood aan ku socodsiiyo Docker gudaha Docker si isdaba joog ah oo aan u sameeyo tijaabooyin dheeri ah.
Waxaan doonayaa inaan sharaxo mid ka mid ah tijaabadan (guulaystay) ee la socodka MySQL iyo Nodejs hadda.
Kuwa ugu dulqaadan way arki karaan sida ay halkan ahayd

Haddaba aan ku bilaabo:

  1. Waxaan ku bilownay DinD qaab is dhexgal ah. Noocan DinD, waxaan u baahanahay inaan si gacanta ah u khariideyno dhamaan dekedaha ay weelasha caruurteena isticmaali karaan (horta ayaan ka shaqaynayaa tan)

    docker run --privileged -it 
    -p 80:8080 
    -p 3306:3306 
    alekslitvinenk/dind

    Waxaan galeynaa bash, halkaas oo aan isla markiiba ka bilaabi karno weelasha carruurta.

  2. Fur MySQL:

    docker run --name mysql -e MYSQL_ROOT_PASSWORD=strongpassword -d -p 3306:3306 mysql

  3. Waxaan ugu xireynaa keydka xogta si la mid ah sida aan ugu xirno gudaha. Aan hubinno in wax walba ay shaqeeyaan.

  4. Fur weelka labaad:

    docker run -d --rm -p 8080:8080 alekslitvinenk/hello-world-nodejs-server

    Fadlan ogow in khariidaynta dekeddu ay noqon doonto mid sax ah 8080:8080, mar haddii aynu hore u samaynay khariidad 80 ah oo laga soo bilaabo martigeliyaha ilaa konteenarka waalidka ilaa dekedda 8080.

  5. Waxaan u tagnaa localhost browserka, hubi in serverku ka jawaabo "Hello World!"

Xaaladdeyda, tijaabada weelasha Docker ee buulkooda leh ayaa noqday mid aad u wanaagsan waxaanan sii wadi doonaa horumarinta mashruuca oo aan u isticmaali doono diyaarinta. Waxay iila muuqataa in tani ay tahay xal aad uga khafiifsan Kubernetes iyo Jenkins X. Laakiin tani waa ra'yigayga shakhsi ahaaneed.

Waxaan filayaa in intaas ay ku dhan tahay maqaalka maanta. Maqaalka soo socda waxaan ku sifayn doonaa tijaabooyin faahfaahsan oo ku saabsan in Docker uu si isdaba joog ah ugu socdo Docker iyo kor u qaadida tusaha qoto dheer ee weelasha buulka leh.

PS Haddii aad u aragto mashruucan mid faa'iido leh, fadlan ku sii xiddig GitHub, fargeeto oo u sheeg asxaabtaada.

Tafatir1 Khaladaadka la saxay, oo diiradda lagu saaray 2 fiidiyow

Source: www.habr.com

Add a comment