Nyob zoo sawv daws! Hauv nws
ΠΠ°ΡΠ°Π»ΠΎ
Nws tag nrho pib thaum lub Cuaj Hlis los nag thaum kuv tab tom ntxuav lub tshuab uas kuv xauj rau $ 5 ntawm Digital Dej Hiav Txwv, uas tau khov vim tias Docker tau ntim tag nrho 24 gigabytes ntawm qhov chaw muaj disk nrog nws cov duab thiab ntim. Qhov tsis txaus ntseeg yog tias tag nrho cov duab thiab cov thawv no tau hloov pauv thiab tsuas yog xav tau los ntsuas qhov ua tau zoo ntawm kuv daim ntawv thov txhua zaus ib qho tshiab ntawm lub tsev qiv ntawv lossis lub moj khaum raug tso tawm. Kuv sim sau cov ntawv plhaub thiab teeb tsa lub sijhawm cron los ntxuav cov khib nyiab, tab sis nws tsis tau pab: txhua zaus nws tsis tuaj yeem xaus nrog kuv lub server qhov chaw disk tau noj thiab cov neeg rau zaub mov dai (zoo tshaj). Qee lub sij hawm, kuv tuaj hla ib tsab xov xwm hais txog yuav ua li cas khiav Jenkins hauv lub thawv thiab yuav ua li cas nws tuaj yeem tsim thiab tshem tawm cov kav dej los ntawm docker daemon socket xa mus rau hauv nws. Kuv nyiam lub tswv yim, tab sis kuv txiav txim siab mus ntxiv thiab sim sim nrog ncaj qha khiav Docker hauv Docker. Thaum lub sijhawm ntawd, nws zoo li kuv qhov kev daws teeb meem tag nrho los rub tawm Docker cov duab thiab tsim cov thawv rau txhua daim ntawv thov uas kuv xav tau rau kev sim hauv lwm lub thawv (cia hu nws lub thawv staging). Lub tswv yim yog pib lub thawv staging nrog tus chij -rm, uas yuav rho tawm tag nrho lub thawv thiab tag nrho nws cov ntsiab lus thaum nws nres. Kuv tinkered nrog Docker duab los ntawm Docker nws tus kheej (
Xyaum. Cones
Kuv tau teeb tsa kom lub thawv ua haujlwm raws li qhov kuv xav tau thiab txuas ntxiv kuv cov kev sim, uas ua rau muaj ntau lub paj. Qhov tshwm sim ntawm kuv tus kheej tsim txom yog cov hauv qab no algorithm:
-
Peb tso lub thawv Docker hauv kev sib tham sib.
docker run --privileged -it docker:18.09.6
Ua tib zoo saib rau lub thawv ntim, kauj ruam sab xis lossis sab laug thiab koj DinD tig mus rau hauv taub dag. Qhov tseeb, tej yam tawg ntau heev thaum lub tshiab version raug tso tawm.
Peb yuav tsum tam sim ntawd nkag mus rau hauv lub plhaub. -
Peb tab tom sim nrhiav seb lub ntim twg tau khiav (Teb: tsis muaj), tab sis cia peb khiav cov lus txib lawm:
docker ps
Koj yuav xav tsis thoob me ntsis, tab sis nws hloov tawm tias Docker daemon tseem tsis tau khiav:
error during connect: Get http://docker:2375/v1.40/containers/json: dial tcp: lookup docker on 192.168.65.1:53: no such host
-
Cia peb khiav nws peb tus kheej:
dockerd &
Lwm unpleasant surprise:
failed to start daemon: Error initializing network controller: error obtaining controller instance: failed to create NAT chain DOCKER: Iptables not found
-
Nruab cov iptables thiab pob pob bash (txhua yam zoo siab ua haujlwm hauv bash dua li hauv sh):
apk add --no-cache iptables bash
-
Cia peb pib bash. Thaum kawg peb rov qab rau hauv lub plhaub li qub
-
Cia peb sim rov pib Docker dua:
dockerd &
Peb yuav tsum pom ib daim ntawv ntev ntawm cov cav uas xaus nrog:
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
-
Nias Enter. Peb rov qab rau hauv bash.
Txij no mus, peb tuaj yeem sim tso lwm lub thawv hauv peb lub thawv Docker, tab sis yuav ua li cas yog tias peb xav tso lwm lub thawv Docker hauv peb lub thawv Docker lossis qee yam tsis raug thiab lub thawv tsoo? Pib tag nrho dua.
Muaj lub thawv DinD thiab kev sim tshiab
Txhawm rau kom tsis txhob rov ua cov kauj ruam saum toj no ib zaug ntxiv, Kuv tsim kuv lub thawv DinD:
Qhov kev daws teeb meem DinD ua haujlwm tau muab kuv lub peev xwm los khiav Docker hauv Docker recursively thiab ua ntau yam kev sim siab.
Kuv yuav piav qhia txog ib qho kev sim (ua tiav) nrog kev khiav MySQL thiab Nodejs tam sim no.
Cov neeg siab ntev tuaj yeem pom tias nws nyob ntawm no li cas
Yog li, cia peb pib:
-
Peb tso DinD hauv kev sib tham sib hom. Nyob rau hauv no version ntawm DinD, peb yuav tsum manually daim ntawv qhia tag nrho cov ports uas peb cov me nyuam ntim siv tau (Kuv twb ua hauj lwm rau qhov no)
docker run --privileged -it -p 80:8080 -p 3306:3306 alekslitvinenk/dind
Peb nkag mus rau hauv bash, los ntawm qhov chaw uas peb tuaj yeem pib tso cov thawv me nyuam tam sim ntawd.
-
Qhib MySQL:
docker run --name mysql -e MYSQL_ROOT_PASSWORD=strongpassword -d -p 3306:3306 mysql
-
Peb txuas mus rau lub database ib yam li peb yuav txuas rau nws hauv zos. Cia peb ua kom txhua yam ua haujlwm.
-
Tua lub thawv thib ob:
docker run -d --rm -p 8080:8080 alekslitvinenk/hello-world-nodejs-server
Thov nco ntsoov tias daim ntawv qhia chaw nres nkoj yuav yog raws nraim 8080:8080, txij li thaum peb twb tau mapped chaw nres nkoj 80 los ntawm tus tswv tsev mus rau lub thawv niam txiv rau qhov chaw nres nkoj 8080.
-
Peb mus rau localhost hauv browser, xyuas kom meej tias cov neeg rau zaub mov teb "Nyob Zoo Ntiaj Teb!"
Hauv kuv qhov xwm txheej, qhov kev sim nrog cov ntim Docker nested tau zoo heev thiab kuv yuav txuas ntxiv txhim kho qhov project thiab siv nws rau kev ua haujlwm. Nws zoo nkaus li kuv tias qhov no yog ib qho kev daws teeb meem ntau dua li Kubernetes thiab Jenkins X. Tab sis qhov no yog kuv qhov kev xav.
Kuv xav tias yog tag nrho rau hnub no tsab xov xwm. Hauv tsab xov xwm tom ntej no kuv yuav piav qhia ntau ntxiv txog kev sim nrog kev khiav Docker recursively hauv Docker thiab mounting directory tob rau hauv nested ntim.
PS Yog tias koj pom qhov project no muaj txiaj ntsig, thov muab nws lub hnub qub ntawm GitHub, nkhaus nws thiab qhia koj cov phooj ywg.
Kho kom raugXXX Kho qhov yuam kev, tsom rau 2 cov yeeb yaj kiab
Tau qhov twg los: www.hab.com