Otu m si agba ọsọ Docker n'ime Docker na ihe si na ya pụta

Ndewo, unu niile! N'ime ya akụkọ gara aga, M kwere nkwa ikwu maka ịgba ọsọ Docker na Docker na akụkụ bara uru nke iji nkuzi a. Oge erugo imezu nkwa gi. Onye nwere ahụmahụ nwere ike ịjụ na ndị chọrọ Docker n'ime Docker na-ebuga oghere Docker daemon site na onye ọbịa n'ime akpa na nke a ga-ezuru 99% nke ikpe. Mana emela ngwa ịtụba m kuki, n'ihi na anyị ga-ekwu maka ịgba ọsọ Docker n'ime Docker. Ihe ngwọta a nwere ọtụtụ ngwa nwere ike ime na isiokwu a bụ banyere otu n'ime ha, ya mere nọdụ ala ma gbatịa ogwe aka gị n'ihu gị.

Otu m si agba ọsọ Docker n'ime Docker na ihe si na ya pụta

Начало

Ihe niile malitere na mgbede Septemba nke mmiri ozuzo mgbe m na-ehicha igwe m gbaziri maka $5 na Digital Ocean, bụ nke oyi kpọnwụrụ n'ihi na Docker ejiriwo ihe oyiyi na arịa ya mejupụta gigabytes 24 nke ohere diski dị. Ihe na-eju anya bụ na ihe oyiyi na arịa ndị a niile na-adịru nwa oge na achọrọ naanị iji nwalee arụmọrụ nke ngwa m oge ọ bụla ewepụtara ụdị ọbá akwụkwọ ma ọ bụ usoro ọhụrụ. Agbalịrị m ịde ederede shei na ịhazi usoro cron iji kpochapụ ihe mkpofu, mana ọ naghị enyere aka: oge ​​ọ bụla ọ ga-ejedebe na ohere diski nke ihe nkesa m na-eri nri na ihe nkesa na-ekowe (nke kacha mma). N'oge ụfọdụ, ahụrụ m otu akụkọ gbasara otu esi agba Jenkins n'ime akpa yana otu ọ ga-esi mepụta ma hichapụ pipeline wuru site na oghere docker daemon ezigara n'ime ya. Echiche ahụ masịrị m, mana ekpebiri m ịga n'ihu wee gbalịa ịnwale na ịgba ọsọ Docker ozugbo n'ime Docker. N'oge ahụ, ọ dị m ka ọ bụ ihe ezi uche dị na ya iji budata onyonyo Docker wee mepụta arịa maka ngwa niile m chọrọ maka nnwale n'ime akpa ọzọ (ka anyị kpọọ ya nnukwu akpa). Echiche a bụ ka a ga-eji ọkọlọtọ -rm bido akpa nrụnye, nke na-ehichapụ akpa ahụ na ihe niile dị n'ime ya ozugbo akwụsịre ya. Ahụrụ m ihe onyonyo Docker si Docker n'onwe ya (https://hub.docker.com/_/docker), ma ọ tụgharịrị bụrụ ihe siri ike na ọ dịghị mgbe m jisiri ike mee ka ọ rụọ ọrụ otú m chọrọ ya ma achọrọ m ịga n'ụzọ niile n'onwe m.

Mee omume. Cones

M malitere ime ka akpa ahụ na-arụ ọrụ otú m chọrọ ma gaa n'ihu na nyocha m, nke mere ka m nweta ọtụtụ buds. Nsonaazụ nke mmekpa ahụ nke onwe m bụ algọridim na-esonụ:

  1. Anyị na-ebunye akpa Docker na ọnọdụ mmekọrịta.

    docker run --privileged -it docker:18.09.6

    Lezienụ anya na ụdị akpa ahụ, kwụpụ aka nri ma ọ bụ aka ekpe na DinD gị na-atụgharị ghọọ ugu. N'ezie, ihe na-agbajikarị mgbe ewepụtara ụdị ọhụrụ.
    Anyị ga-ozugbo banye shei.

  2. Anyị na-agbalị ịchọpụta arịa ndị na-agba ọsọ (Azịza: ọ dịghị), mana ka anyị mee iwu ahụ:

    docker ps

    Ọ ga-eju gị anya, mana ọ tụgharịrị na Docker daemon anaghị agba ọsọ:

    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. Ka anyị gbaa ya n'onwe anyị:

    dockerd &

    Ihe ịtụnanya ọzọ na-adịghị mma:

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

  4. Wụnye ngwugwu iptables na bash (ihe niile na-atọ ụtọ ịrụ ọrụ na bash karịa na sh):

    apk add --no-cache iptables bash

  5. Ka anyị malite bash. N'ikpeazụ, anyị na-alọghachi na mbụ shei

  6. Ka anyị nwaa ịmalite Docker ọzọ:

    dockerd &

    Anyị kwesịrị ịhụ ogologo akwụkwọ ndekọ na-agwụ:

    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. Pịa Tinye. Anyị alọghachila na bash.

Site ugbu a gaa n'ihu, anyị nwere ike ịgbalị ịmalite arịa ndị ọzọ n'ime akpa Docker anyị, mana gịnị ma ọ bụrụ na anyị chọrọ ịmalite akpa Docker ọzọ n'ime akpa Docker anyị ma ọ bụ ihe na-aga nke ọma na akpa ahụ dara? Malite ọzọ.

Akpa DinD nke ya na nnwale ọhụrụ

Otu m si agba ọsọ Docker n'ime Docker na ihe si na ya pụta
Iji zere imegharị usoro ndị a ugboro ugboro, emepụtara m akpa DinD nke m:

https://github.com/alekslitvinenk/dind

Ihe ngwọta DinD na-arụ ọrụ nyere m ike ịgba ọsọ Docker n'ime Docker ugboro ugboro ma mee nnwale ndị ọzọ na-akpali akpali.
M ga-akọwa otu ụdị nnwale (na-aga nke ọma) na-agba ọsọ MySQL na Nodejs ugbu a.
Onye na-enweghị ndidi nwere ike ịhụ ka ọ dị ebe a

Yabụ, ka anyị bido:

  1. Anyị na-ebido DinD na ọnọdụ mmekọrịta. Na ụdị DinD a, anyị kwesịrị iji aka na-esepụta ọdụ ụgbọ mmiri niile akpa ụmụaka anyị nwere ike iji (Ana m arụ ọrụ na nke a)

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

    Anyị na-abanye na bash, site na ebe anyị nwere ike ịmalite ịmalite ngwa ụmụaka ozugbo.

  2. Mwepụta MySQL:

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

  3. Anyị na-ejikọta na nchekwa data n'otu ụzọ ahụ anyị ga-esi jikọọ na ya na mpaghara. Ka anyị hụ na ihe niile na-arụ ọrụ.

  4. Mepụta akpa nke abụọ:

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

    Biko mara na eserese ọdụ ụgbọ mmiri ga-abụ nke ọma 8080:8080, ebe ọ bụ na anyị etinyelarị ọdụ ụgbọ mmiri 80 site na onye ọbịa gaa na akpa nne na nna na ọdụ ụgbọ mmiri 8080.

  5. Anyị na-aga localhost na ihe nchọgharị ahụ, jide n'aka na ihe nkesa ahụ zara "Ndewo Ụwa!"

N'ọnọdụ nke m, nnwale ahụ nwere arịa Docker akwụghị ụgwọ tụgharịrị bụrụ ihe dị mma na m ga-aga n'ihu na-emepụta ọrụ ahụ ma jiri ya mee ihe. Ọ dị m ka nke a bụ ihe ngwọta dị arọ karịa Kubernetes na Jenkins X. Ma nke a bụ echiche nke onwe m.

Echere m na ọ bụ naanị maka akụkọ taa. N'isiokwu na-esonụ, m ga-akọwa n'ụzọ zuru ezu nnwale na Docker na-agba ọsọ recursively na Docker na-arị elu directories n'ime n'ime akwu.

PS Ọ bụrụ na ịchọtara na ọrụ a bara uru, biko nye ya kpakpando na GitHub, gbanye ya ma gwa ndị enyi gị.

Dezie1 Njehie emeziri, lekwasịrị anya na vidiyo 2

isi: www.habr.com

Tinye a comment