Kuphunzira Docker, Gawo 6: Kugwira Ntchito ndi Zambiri

M'gawo lamasiku ano la kumasulira kwazinthu zingapo za Docker, tikambirana za kugwira ntchito ndi data. Makamaka, za ma volume a Docker. Muzinthu izi, tinkayerekeza nthawi zonse njira zamapulogalamu a Docker ndi mafananidwe osiyanasiyana odyedwa. Sitipatuka pamwambowu pano. Lolani zomwe zili mu Docker zikhale zonunkhira. Pali zokometsera zambiri padziko lapansi, ndipo Docker ali ndi njira zambiri zogwirira ntchito ndi deta.

Gawo 1: Zoyambira
Gawo 2: mawu ndi malingaliro
Gawo 3: Dockerfiles
Gawo 4: Kuchepetsa kukula kwa zithunzi ndikufulumizitsa msonkhano wawo
Gawo 5: Malamulo
Gawo 6: Kugwira ntchito ndi data

Kuphunzira Docker, Gawo 6: Kugwira Ntchito ndi Zambiri

Chonde dziwani kuti nkhaniyi idakonzedwa pogwiritsa ntchito mtundu wa injini ya Docker 18.09.1 ​​​​ndi mtundu wa API 1.39.

Zambiri mu Docker zitha kusungidwa kwakanthawi kapena kosatha. Tiyeni tiyambe ndi data yanthawi yochepa.

Kusungidwa kwa data kwakanthawi

Pali njira ziwiri zoyendetsera deta yakanthawi muzotengera za Docker.

Mwachikhazikitso, mafayilo opangidwa ndi pulogalamu yomwe ikuyenda mu chidebe amasungidwa mu chidebe cholembedwa. Kuti makinawa agwire ntchito, palibe chapadera chomwe chiyenera kukonzedwa. Zimakhala zotsika mtengo komanso zansangala. Kugwiritsa ntchito kumangofunika kusunga deta ndikupitiriza kuchita zake. Komabe, chidebecho chitasiya kukhalapo, deta yosungidwa m'njira yosavuta idzathanso.

Kusungirako kwakanthawi kwamafayilo ku Docker ndi yankho lina lomwe lili loyenera milandu yomwe mukufunikira magwiridwe antchito apamwamba kuposa omwe amatheka pogwiritsa ntchito njira yosungira kwakanthawi kochepa. Ngati simukufuna kuti deta yanu isungidwe motalika kuposa momwe chidebecho chilili, mutha kulumikizana ndi chidebe tmpfs - sitolo yanthawi yayitali yomwe imagwiritsa ntchito RAM ya wolandirayo. Izi zidzafulumizitsa ntchito yolemba ndi kuwerengera deta.

Nthawi zambiri zimachitika kuti deta iyenera kusungidwa ngakhale chidebecho chitasiya kukhalapo. Kuti tichite izi, timafunikira njira zolimbikitsira zosungira deta.

Kusunga deta mosalekeza

Pali njira ziwiri zopangira moyo wautali kuposa moyo wa chidebe. Njira imodzi ndiyo kugwiritsa ntchito ukadaulo wa bind mount. Ndi njira iyi, mutha kukwera, mwachitsanzo, chikwatu chamoyo weniweni pachidebe. Njira zakunja kwa Docker zithanso kugwira ntchito ndi data yosungidwa mufoda yotere. Ndi momwemo yang'anani tmpfs kukwera ndikumanga ukadaulo wa Mount.

Kuphunzira Docker, Gawo 6: Kugwira Ntchito ndi Zambiri
Kukhazikitsa tmpfs ndikumanga phiri

Zoyipa zogwiritsa ntchito ukadaulo wa Bind Mount ndikuti kugwiritsa ntchito kwake kumasokoneza zosunga zobwezeretsera, kusamuka kwa data, kugawana deta pakati pazida zingapo. Ndikwabwino kugwiritsa ntchito ma voliyumu a Docker posungabe deta mosalekeza.

Voliyumu Docker

Voliyumu ndi fayilo yomwe imakhala pamakina osungira kunja kwa zotengera. Ma voliyumu amapangidwa ndikuyendetsedwa ndi Docker. Nazi zinthu zazikulu zamavoliyumu a Docker:

  • Iwo ndi njira yosungiramo zokhazikika za chidziwitso.
  • Amakhala odziyimira pawokha komanso olekanitsidwa ndi zotengera.
  • Akhoza kugawidwa pakati pa zotengera zosiyanasiyana.
  • Amakulolani kuti mukonzekere kuwerenga ndi kulemba bwino deta.
  • Ma voliyumu amatha kuyikidwa pazinthu zamtundu wakutali.
  • Iwo akhoza encrypted.
  • Akhoza kupatsidwa mayina.
  • Chidebecho chikhoza kukonzekera kuchulukitsidwa kwa voliyumu ndi deta.
  • Iwo ndi yabwino kuyesa.

Monga mukuwonera, ma volume a Docker ali ndi zinthu zodabwitsa. Tiyeni tikambirane m'mene tingawalenge.

Kupanga Mabuku

Ma voliyumu amatha kupangidwa pogwiritsa ntchito zopempha za Docker kapena API.

Nawa malangizo mu Dockerfile omwe amakulolani kuti mupange voliyumu mukayambitsa chidebe.

VOLUME /my_volume

Pogwiritsa ntchito malangizo ofanana, Docker, atapanga chidebecho, adzapanga voliyumu yomwe ili ndi deta yomwe ilipo kale pamalo omwe atchulidwa. Zindikirani kuti ngati mupanga voliyumu pogwiritsa ntchito Dockerfile, izi sizikukuchotserani kufunikira kofotokozera voliyumu yokwera.

Mutha kupanganso mavoliyumu mu Dockerfile pogwiritsa ntchito mtundu wa JSON.

Kuphatikiza apo, ma voliyumu amatha kupangidwa pogwiritsa ntchito zida zama mzere wolamula pomwe chidebe chikuyenda.

Kugwira ntchito ndi ma voliyumu kuchokera pamzere wolamula

▍Kupanga mawu

Mutha kupanga voliyumu yoyimirira ndi lamulo ili:

docker volume create —-name my_volume

▍ Dziwani zambiri zokhudza mavoliyumu

Kuti muwone mndandanda wamavoliyumu a Docker, gwiritsani ntchito lamulo ili:

docker volume ls

Mutha kuyang'ana voliyumu inayake ngati iyi:

docker volume inspect my_volume

▍Kuchotsa voliyumu

Mutha kufufuta voliyumu ngati iyi:

docker volume rm my_volume

Kuti muchotse ma voliyumu onse omwe sagwiritsidwa ntchito ndi makontena, mutha kugwiritsa ntchito lamulo ili:

docker volume prune

Asanachotse ma voliyumu, Docker akufunsani kuti mutsimikizire ntchitoyi.

Ngati voliyumu ikugwirizana ndi chidebe, voliyumuyo siyingachotsedwe mpaka chidebe chofananiracho chichotsedwa. Nthawi yomweyo, ngakhale chidebecho chitachotsedwa, Docker samamvetsetsa izi nthawi zonse. Izi zikachitika, mutha kugwiritsa ntchito lamulo ili:

docker system prune

Amapangidwa kuti aziyeretsa zida za Docker. Mukamaliza kuchita izi, muyenera kuchotsa ma voliyumu omwe mawonekedwe awo anali olakwika.

The --mount ndi --volume mbendera

Kuti mugwire ntchito ndi ma voliyumu, mukayitana lamulo docker, nthawi zambiri mudzafunika kugwiritsa ntchito mbendera. Mwachitsanzo, kuti mupange voliyumu popanga chidebe, mutha kugwiritsa ntchito izi:

docker container run --mount source=my_volume, target=/container/path/for/volume my_image

Kale (mpaka 2017), mbendera inali yotchuka --volume. Poyamba, mbendera iyi (ikhoza kugwiritsidwanso ntchito mwachidule, ndiye ikuwoneka ngati -v) ankagwiritsidwa ntchito ngati zotengera zokhazokha, ndi mbendera --mount - m'malo a Docker Swarm. Komabe, kuyambira Docker 17.06, mbendera --mount angagwiritsidwe ntchito muzochitika zilizonse.

Kuyenera kudziŵika kuti pamene ntchito mbendera --mount kuchuluka kwa deta yowonjezera yomwe iyenera kufotokozedwa mu lamulo ikuwonjezeka, koma, pazifukwa zingapo, ndi bwino kugwiritsa ntchito mbendera iyi, osati --volume. Mbendera --mount ndiye njira yokhayo yomwe imakulolani kuti mugwire ntchito ndi mautumiki kapena tchulani zosankha zoyendetsa voliyumu. Komanso, mbendera iyi ndi yosavuta kugwira nayo ntchito.

M'zitsanzo zomwe zilipo za malamulo oyendetsa data a Docker, mutha kuwona zitsanzo zambiri zakugwiritsa ntchito mbendera -v. Poyesera kusintha malamulowa nokha, kumbukirani kuti mbendera --mount и --volume gwiritsani ntchito mitundu yosiyanasiyana ya parameter. Ndiko kuti, simungangosintha -v pa --mount ndi kupeza gulu logwira ntchito.

Kusiyana kwakukulu pakati --mount и --volume ndi pamene mukugwiritsa ntchito mbendera --volume magawo onse amasonkhanitsidwa pamodzi m'munda umodzi, ndi pamene ntchito --mount magawo amasiyanitsidwa.

Mukamagwira ntchito ndi --mount magawo amaimiridwa ngati mawiri amtengo wapatali, mwachitsanzo, zikuwoneka ngati key=value. Mawiriwa amasiyanitsidwa ndi koma. Nazi njira zomwe zimagwiritsidwa ntchito kwambiri --mount:

  • type - mtundu wa phiri. Mtengo wa kiyi yolingana ukhoza kukhala kumanga, kuchuluka kapena alireza. Tikukamba za mavoliyumu apa, ndiko kuti, tili ndi chidwi ndi mtengo wake volume.
  • source - phiri source. Kwa mavoliyumu otchulidwa, ili ndi dzina la voliyumuyo. Kwa mavoliyumu omwe sanatchulidwe, funguloli silinatchulidwe. Ikhoza kufupikitsidwa kuti src.
  • destination - njira yomwe fayilo kapena foda imayikidwa mu chidebe. Kiyi iyi ikhoza kufupikitsidwa ku dst kapena target.
  • readonly - amakweza voliyumu yomwe ikufuna powerenga kokha. Kugwiritsa ntchito funguloli ndikosankha, ndipo palibe phindu lomwe laperekedwa.

Nachi chitsanzo cha ntchito --mount ndi zosankha zambiri:

docker run --mount type=volume,source=volume_name,destination=/path/in/container,readonly my_image

Zotsatira

Nawa malamulo othandiza omwe mungagwiritse ntchito mukamagwira ntchito ndi ma Docker volumes:

  • docker volume create
  • docker volume ls
  • docker volume inspect
  • docker volume rm
  • docker volume prune

Nawu mndandanda wazomwe zimagwiritsidwa ntchito kwambiri --mount, yogwiritsidwa ntchito mwalamulo la fomu docker run --mount my_options my_image:

  • type=volume
  • source=volume_name
  • destination=/path/in/container
  • readonly

Tsopano popeza tatsiriza mndandanda wa Docker uwu, ndi nthawi yoti tinene mawu ochepa za komwe ophunzira a Docker angapiteko. pano nkhani yabwino kwambiri ya Docker. pano buku lonena za Docker (pogula bukuli, yesani kupeza kope laposachedwa). pano buku lina kwa iwo amene amaganiza kuchita ndi njira yabwino kuphunzira luso.

Wokondedwa owerenga! Ndi zida ziti za Docker zomwe mungapangire kuti oyamba kumene kuti aphunzire?

Kuphunzira Docker, Gawo 6: Kugwira Ntchito ndi Zambiri

Source: www.habr.com

Kuwonjezera ndemanga