Ի՞նչ կլինի Docker կոնտեյների մեջ ստեղծված ֆայլի հետ նրա կանգնեցնելուց հետո։
sobes.tech AI
Պատասխան AI-ից
Docker կոնտեյների ներսում ստեղծված ֆայլը կպահպանվի կոնտեյների ֆայլային համակարգի գրառման շերտում: Երբ կոնտեյները կանգնեցվի (docker stop), այս գրառման շերտը չի ջնջվի, այդպիսով տվյալները կմնան:
Սակայն, կոնտեյները ջնջելիս (docker rm), բոլոր շերտերը, այդ թվում՝ գրառման շերտը, նույնպես ջնջվում են, և ֆայլը կկորցվի:
Տվյալների երկարաժամկետ և անկախ կոնտեյների կյանքի ցիկլից պահպանումը իրականացվում է հետևյալ մեթոդներով՝
-
Volumes (հատումներ): Առաջարկվող մեթոդ։ Docker-ը կառավարում է հատումների կյանքի ցիկլը։ Տվյալները պահվում են կոնտեյների դուրս, հաճախ՝ հատուկ დირექტորայում հոստ համակարգում, որը զատված է կոնտեյների ֆայլային համակարգից:
// Հատում ստեղծել docker volume create mydata // Կոնտեյներ սկսել հատում մոնտաժելով docker run -d --name mycontainer -v mydata:/app/data myimage -
Bind Mounts (կապակցված մոնտաժներ): Կապում են հոստ համակարգի մի დირექტորին կոնտեյների ներսում գտնվող մեկի հետ։ Սա օգտակար է զարգացման ժամանակ, երբ անհրաժեշտ է անմիջական մուտք դեպի հոստի ֆայլեր (օր., աղբյուրային կոդ): Docker-ը կառավարում է հոստի ֆայլերը միայն անուղղակի:
// Կոնտեյներ սկսել հոստի մի կապակցված დირექტորով docker run -d --name mycontainer -v /path/on/host:/app/data myimage
Այսպիսով, եթե ֆայլը ստեղծվում է առանց հատումների կամ կապակցված մոնտաժների օգտագործման, այն կկորչի կոնտեյները ջնջելուց հետո, բայց չի կորչի նրա կանգնեցումից հետո։ Հատումների կամ կապակցված մոնտաժների օգտագործման դեպքում, տվյալները պահվում են անկախ կոնտեյների վիճակից կամ գոյությունից։