Engxenyeni yanamuhla yokuhunyushwa kochungechunge lwezinto ezisetshenziswayo mayelana ne-Docker, sizokhuluma ngokusebenza nedatha. Ikakhulukazi, mayelana namavolumu e-Docker. Kulezi zinto zokwakha, sasihlale siqhathanisa izindlela zokuhlela ze-Docker nezifaniso ezihlukahlukene ezidliwayo. Ngeke siphambuke kuleli siko lalapha. Vumela idatha eku-Docker ibe izinongo. Ziningi izinongo emhlabeni, futhi i-Docker inezindlela eziningi zokusebenza ngedatha.
→
→
→
→
→
→
Sicela uqaphele ukuthi le nto yalungiswa kusetshenziswa inguqulo yenjini ye-Docker engu-18.09.1 kanye nenguqulo ye-API
Idatha ku-Docker ingagcinwa okwesikhashana noma unomphela. Ake siqale ngedatha yesikhashana.
Ukugcinwa kwedatha yesikhashana
Kunezindlela ezimbili zokuphatha idatha yesikhashana ezitsheni ze-Docker.
Ngokuzenzakalelayo, amafayela adalwe uhlelo lokusebenza olusebenza esitsheni agcinwa kusendlalelo sesiqukathi esibhalekayo. Ukuze lo mshini usebenze, akukho okukhethekile okudingeka kumiswe. Kuvele kushibhile futhi kujabule. Uhlelo lokusebenza ludinga nje ukulondoloza idatha futhi luqhubeke nokwenza into yalo. Nokho, ngemva kokuba isiqukathi singasekho, idatha elondolozwe ngendlela elula kanjalo nayo izonyamalala.
Ukugcinwa kwefayela kwesikhashana ku-Docker kungenye isixazululo esifanele izimo lapho udinga izinga eliphezulu lokusebenza kunalokho okufezwayo usebenzisa indlela evamile yokugcina idatha yesikhashana. Uma ungadingi idatha yakho ukuthi igcinwe isikhathi eside kunesiqukathi esikhona, ungaxhuma kusiqukathi se-tmpfs - isitolo solwazi sesikhashana esisebenzisa i-RAM yomsingathi. Lokhu kuzosheshisa ukwenziwa komsebenzi wokubhala nokufunda idatha.
Ngokuvamile kwenzeka ukuthi idatha idinga ukugcinwa ngisho nangemva kokuba isiqukathi singasekho. Ukuze senze lokhu, sidinga izindlela zokugcina idatha eziqhubekayo.
Ukugcinwa kwedatha okuqhubekayo
Kunezindlela ezimbili zokwenza impilo yedatha ibe yinde kunempilo yesiqukathi. Enye indlela ukusebenzisa ubuchwepheshe be-bind mount. Ngale ndlela, ungakwazi ukukhweza, isibonelo, ifolda yempilo yangempela esitsheni. Izinqubo ezingaphandle kwe-Docker zizokwazi nokusebenza nedatha egcinwe kufolda enjalo. Kanjalo
Ukukhweza ama-tmpfs bese ubopha i-mount
Ububi bokusebenzisa ubuchwepheshe be-bind mount ukuthi ukusetshenziswa kwayo kwenza isipele sedatha sibe nzima, ukuthuthwa kwedatha, ukwabelana ngedatha phakathi kweziqukathi ezimbalwa. Kungcono kakhulu ukusebenzisa amavolumu e-Docker ukugcina idatha eqhubekayo.
I-Docker yevolumu
Ivolumu iyisistimu yefayela etholakala emshinini womsingathi ngaphandle kweziqukathi. Amavolumu adalwa futhi aphethwe yi-Docker. Nazi izakhiwo eziyinhloko zamavolumu e-Docker:
- Ziyindlela yokugcina ulwazi unomphela.
- Zizimele futhi zihlukaniswe neziqukathi.
- Zingabiwa phakathi kweziqukathi ezahlukene.
- Zikuvumela ukuthi uhlele ukufundwa nokubhala kahle kwedatha.
- Amavolumu angafakwa kuzinsiza zomhlinzeki wamafu okude.
- Angabethelwa.
- Bangabizwa ngamagama.
- Isiqukathi singahlela ukugcwala kwangaphambili kwevolumu ngedatha.
- Zilungele ukuhlolwa.
Njengoba ubona, imiqulu ye-Docker inezakhiwo ezimangalisayo. Ake sikhulume ngendlela yokuwadala.
Ukudala Amavolumu
Amavolumu angadalwa kusetshenziswa izicelo ze-Docker noma ze-API.
Nawu umyalo ku-Dockerfile okuvumela ukuthi udale ivolumu lapho uqala isiqukathi.
VOLUME /my_volume
Lapho usebenzisa umyalo ofanayo, i-Docker, ngemva kokudala isitsha, izodala ivolumu equkethe idatha esivele ikhona endaweni eshiwo. Qaphela ukuthi uma udala ivolumu usebenzisa i-Dockerfile, lokhu akukukhululi esidingweni sokucacisa indawo yokukhweza yevolumu.
Ungakwazi futhi ukudala amavolumu ku-Dockerfile usebenzisa ifomethi ye-JSON.
Ngaphezu kwalokho, amavolumu angadalwa kusetshenziswa amathuluzi omugqa womyalo ngenkathi isiqukathi sisebenza.
Ukusebenza ngamavolumu avela kulayini womyalo
▍Ukwenziwa kwevolumu
Ungakha ivolumu ezimele ngomyalo olandelayo:
docker volume create —-name my_volume
▍Thola ulwazi mayelana namavolumu
Ukubuka uhlu lwamavolumu e-Docker, sebenzisa umyalo olandelayo:
docker volume ls
Ungahlola ivolumu ethile kanje:
docker volume inspect my_volume
▍Ukususa ivolumu
Ungasusa ivolumu efana nalena:
docker volume rm my_volume
Ukuze ususe wonke amavolumu angasetshenziswa yiziqukathi, ungasebenzisa umyalo olandelayo:
docker volume prune
Ngaphambi kokususa amavolumu, i-Docker izokucela ukuthi uqinisekise lo msebenzi.
Uma ivolumu ihlotshaniswa nesiqukathi, leyo volumu ayikwazi ukususwa kuze kube yilapho isiqukathi esihambisanayo sicishiwe. Ngesikhathi esifanayo, noma ngabe isitsha sisusiwe, i-Docker ayikuqondi lokhu ngaso sonke isikhathi. Uma lokhu kwenzeka, ungasebenzisa umyalo olandelayo:
docker system prune
Yenzelwe ukuhlanza izinsiza ze-Docker. Ngemva kokwenza lo myalo, kufanele ukwazi ukususa amavolumu isimo sawo besikade singalungile.
Amafulegi --mount kanye --volume
Ukusebenza ngamavolumu, uma ubiza umyalo docker
, ngokuvamile uzodinga ukusebenzisa amafulegi. Isibonelo, ukuze udale ivolumu ngesikhathi sokudalwa kweziqukathi, ungasebenzisa lokhu kwakha:
docker container run --mount source=my_volume, target=/container/path/for/volume my_image
Ezikhathini zasendulo (kuze kube ngu-2017), ifulegi lalidumile --volume
. Ekuqaleni, leli fulegi (lingasetshenziswa futhi ngendlela efushanisiwe, bese libukeka -v
) yayisetshenziselwa iziqukathi ezizimele, kanye nefulegi --mount
- endaweni ye-Docker Swarm. Kodwa-ke, kusukela ku-Docker 17.06, ifulegi --mount
ingasetshenziswa kunoma yisiphi isimo.
Kufanele kuqashelwe ukuthi uma usebenzisa ifulege --mount
inani ledatha eyengeziwe okufanele icaciswe kumyalo inyuka, kodwa, ngenxa yezizathu ezimbalwa, kungcono ukusebenzisa leli fulegi elithile, hhayi --volume
. Hlaba umkhosi --mount
iyona ndlela kuphela ekuvumela ukuthi usebenze nezinsizakalo noma ucacise izinketho zomshayeli wevolumu. Futhi, leli fulegi kulula ukusebenza ngalo.
Ezibonelweni ezikhona zemiyalo yokukhohlisa idatha ye-Docker, ungabona izibonelo eziningi zokusetshenziswa kwefulegi -v
. Uma uzama ukuzivumelanisa le miyalo ngokwakho, khumbula ukuthi amafulegi --mount
и --volume
sebenzisa amafomethi epharamitha ahlukene. Okusho ukuthi, awukwazi ukumane ubeke esikhundleni -v
on --mount
futhi uthole ithimba elisebenzayo.
Umehluko omkhulu phakathi --mount
и --volume
yilokho lapho usebenzisa ifulege --volume
wonke amapharamitha aqoqwa ndawonye endaweni eyodwa, nalapho usebenzisa --mount
amapharamitha ahlukene.
Lapho usebenza ne- --mount
amapharamitha amelwe njengamapheya enani elingukhiye, okungukuthi, kubukeka sengathi key=value
. Lawa mapheya ahlukaniswa ngokhefana. Nazi izinketho ezivame ukusetshenziswa --mount
:
type
- uhlobo lokukhweza. Inani lokhiye ohambelanayo lingababopha ,ivolumu nomatmpfs . Sikhuluma ngamavolumu lapha, okungukuthi, sinesithakazelo ku-valuevolume
.source
- mount umthombo. Kumavolumu aqanjwe igama, leli igama levolumu. Kumavolumu angashiwongo, lo khiye awucacisiwe. Ingafushaniswa ukuze ithisrc
.destination
- indlela okufakwe kuyo ifayela noma ifolda esitsheni. Lo khiye ungafushaniswa ukuze uthidst
nomatarget
.readonly
- inyusa ivolumu ehlosiweukufunda kuphela . Ukusetshenziswa kwalo khiye kungokuzithandela, futhi alikho inani elinikezwe lona.
Nasi isibonelo sokusebenzisa --mount
ngezinketho eziningi:
docker run --mount type=volume,source=volume_name,destination=/path/in/container,readonly my_image
Imiphumela
Nansi imiyalo ewusizo ongayisebenzisa lapho usebenza namavolumu e-Docker:
docker volume create
docker volume ls
docker volume inspect
docker volume rm
docker volume prune
Nalu uhlu lwezinketho ezisetshenziswa kakhulu --mount
, kusebenza ngomyalo wefomu docker run --mount my_options my_image
:
type=volume
source=volume_name
destination=/path/in/container
readonly
Manje njengoba sesiluqedile lolu chungechunge lwe-Docker, sekuyisikhathi sokusho amagama ambalwa mayelana nokuthi abafundi be-Docker bangaya kuphi ngokulandelayo.
Bafundi abathandekayo! Yiziphi izinto ze-Docker ongancoma ukuthi abaqalayo bazifunde?
Source: www.habr.com