Me pehea taku whakahaere i a Docker i roto i a Docker me nga mea i puta mai

Kia ora katoa! I roto i tana Tuhinga o mua, I oati ahau ki te korero mo te whakahaere i a Docker i Docker me nga ahuatanga whaitake o te whakamahi i tenei akoranga. Kua tae ki te wa ki te pupuri i to oati. Ka whakahēhia e te hunga e hiahia ana ki a Docker i roto i a Docker me tuku noa te turanga daemon Docker mai i te kaihautu ki roto i te ipu ka nui tenei ki te 99% o nga keehi. Engari kaua e tere ki te maka pihikete ki ahau, na te mea ka korero tatou mo te whakahaere tonu i a Docker ki roto Docker. He maha nga tono ka taea e tenei otinga, a ko tenei tuhinga e pa ana ki tetahi, no reira noho ki muri ka whakatika o ringa ki mua i a koe.

Me pehea taku whakahaere i a Docker i roto i a Docker me nga mea i puta mai

Начало

I timata katoa i te ahiahi o Mahuru i te wa e horoi ana ahau i te miihini i riihitia e au mo te $5 i runga Digital Ocean, i whakatotoka na te mea kua whakakiia e Docker nga 24 gigabytes o te mokowā kōpae e waatea ana me ona whakaahua me ona ipu. Ko te mea whakapouri ko enei whakaahua me nga ipu katoa he wa poto noa, me whakamatau noa i te mahinga o taku tono i nga wa katoa ka tukuna he putanga hou o te whare pukapuka, angamahi ranei. I ngana ahau ki te tuhi i nga tuhinga anga me te whakarite i tetahi rarangi cron ki te horoi paru, engari kaore i awhina: i nga wa katoa ka mutu ka kainga te mokowā kōpae o taku tūmau me te iri te tūmau (he pai rawa atu). I etahi wa, ka kite ahau i tetahi tuhinga mo te whakahaere i a Jenkins i roto i te ipu me pehea e taea ai te hanga me te whakakore i nga raina paipa ma roto i te turanga daemon docker kua tukuna ki roto. I pai ahau ki te whakaaro, engari i whakatau ahau ki te haere atu ki te whakamatau me te whakahaere tika i a Docker ki roto Docker. I taua wa, ki taku whakaaro he otinga tino arorau ki te tango i nga whakaahua Docker me te hanga ipu mo nga tono katoa e hiahiatia ana e au mo te whakamatautau i roto i tetahi atu ipu (me kii he ipu whakaari). Ko te whakaaro ko te timata i tetahi ipu whakaari me te haki -rm, ka muku aunoa i te ipu katoa me ona mea katoa ina mutu. I tarai ahau ki te ahua Docker mai i a Docker ano (https://hub.docker.com/_/docker), engari i puta he uaua rawa atu kaore au i kaha ki te mahi i te huarahi e hiahiatia ana e au, ka hiahia ahau ki te haere katoa.

Parakatihi. Koekoe

I anga ahau ki te mahi i te ipu kia rite ki taku e hiahia ana me te haere tonu i aku whakamatautau, ka puta mai he tini o nga puku. Ko te hua o taku whakamamae whaiaro ko te algorithm e whai ake nei:

  1. Ka whakarewahia e matou te ipu Docker ki te aratau tauwhitiwhiti.

    docker run --privileged -it docker:18.09.6

    Kia tupato ki te ahua o te ipu, hikoi ki matau, maui ranei, ka huri to DinD hei paukena. Inaa, he maha nga wa ka pakaru nga mea ka tukuna he putanga hou.
    Me uru tonu tatou ki roto i te anga.

  2. E ngana ana matou ki te rapu ko wai nga ipu e rere ana (Whakautu: kore), engari me whakahaere tonu te whakahau:

    docker ps

    Ka tino miharo koe, engari ka puta ko te Docker daemon kaore i te rere:

    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. Ma tatou ano e whakahaere:

    dockerd &

    Ko tetahi atu ohorere kino:

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

  4. Tāutahia nga iptables me nga kohinga bash (he pai ake nga mea katoa ki te mahi i roto i te bash i te sh):

    apk add --no-cache iptables bash

  5. Kia whakarewahia te bash. Ka mutu kua hoki ano tatou ki te anga o mua

  6. Me ngana ki te whakahaere ano i a Docker:

    dockerd &

    Me kite tatou i tetahi rau rakau roa e mutu ana ki:

    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. Press Enter. Kua hoki mai matou ki roto i te poikiri.

Mai i tenei wa, ka taea e tatou te ngana ki te whakarewa i etahi atu ipu ki roto i to tatou ipu Docker, engari me pehea ki te hiahia ki te whakarewa i tetahi atu ipu Docker ki roto i to tatou ipu Docker, he aha ranei ka he ka pakaru te ipu? Me timata ano.

He ipu DinD ake me nga whakamatautau hou

Me pehea taku whakahaere i a Docker i roto i a Docker me nga mea i puta mai
Hei karo i te tukurua i nga mahi i runga ake nei, i hanga e ahau taku ake ipu DinD:

https://github.com/alekslitvinenk/dind

Ko te otinga mahi a DinD i whai waahi ahau ki te whakahaere i a Docker i roto i te Docker me te mahi i etahi atu whakamatautau.
Ka whakaahua ahau i tetahi whakamatautau (angitu) me te whakahaere i a MySQL me Nodejs inaianei.
Ka taea e te hunga tino pukuriri te kite pehea i konei

Na, kia timata tatou:

  1. Ka whakarewahia e matou a DinD ki te aratau tauwhitiwhiti. I tenei putanga o DinD, me mapi a-ringa i nga tauranga katoa ka taea e a tatou ipu tamariki te whakamahi (kei te mahi ahau i tenei)

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

    Ka uru matou ki roto i te poi, mai i te waahi ka timata tonu matou ki te whakarewa i nga ipu tamariki.

  2. Whakarewa MySQL:

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

  3. He rite tonu ta matou hono atu ki te patengi raraunga me ta matou hono atu ki tera rohe. Kia kaha nga mea katoa.

  4. Whakarewahia te ipu tuarua:

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

    Kia mahara ko te mapi tauranga ka tika 8080:8080, i te mea kua mapihia e matou te tauranga 80 mai i te kaihautu ki te ipu matua ki te tauranga 8080.

  5. Ka haere matou ki te localhost i roto i te tirotiro, kia mohio kei te whakautu te kaimau "Kia ora te Ao!"

I roto i taku keehi, he tino pai te whakamatautau me nga ipu Docker kohanga ka haere tonu ahau ki te whakawhanake i te kaupapa me te whakamahi mo te whakaari. Ki taku whakaaro he otinga tino mama ake tenei i a Kubernetes me Jenkins X. Engari ko taku whakaaro tenei.

Ki taku whakaaro ko tera noa mo te tuhinga o tenei ra. I roto i te tuhinga e whai ake nei ka whakamaaramahia e au nga whakamatautau me te whakahaere i a Docker i roto i te Docker me te whakauru i nga raarangi ki roto i nga ipu kohanga.

PS Mena ka kitea e koe he pai tenei kaupapa, hoatu he whetu ki runga i a GitHub, marau ka korero ki o hoa.

Whakatika1 Kua whakatikahia nga hapa, i arotahi ki te 2 ataata

Source: will.com

Tāpiri i te kōrero