Докерді үйрену, 6-бөлім: Деректермен жұмыс

Докер туралы материалдар топтамасын аударудың бүгінгі бөлімінде біз деректермен жұмыс істеу туралы айтатын боламыз. Атап айтқанда, Docker томдары туралы. Бұл материалдарда біз Docker бағдарламалау механизмдерін әртүрлі жеуге болатын ұқсастықтармен үнемі салыстырдық. Бұл жерде біз бұл дәстүрден айнымаймыз. Докердегі деректер дәмдеуіштер болсын. Әлемде көптеген дәмдеуіштер бар және Docker деректермен жұмыс істеудің көптеген әдістеріне ие.

1-бөлім: Негіздер
2-бөлім: терминдер мен ұғымдар
3-бөлім: Докер файлдары
4-бөлім: Суреттердің өлшемін азайту және оларды жинауды жылдамдату
5-бөлім: командалар
6-бөлім: Деректермен жұмыс

Докерді үйрену, 6-бөлім: Деректермен жұмыс

Бұл материал Docker қозғалтқышының 18.09.1 ​​нұсқасы және API нұсқасы арқылы дайындалғанын ескеріңіз 1.39.

Докердегі деректерді уақытша немесе тұрақты сақтауға болады. Уақытша деректерден бастайық.

Уақытша деректерді сақтау

Docker контейнерлерінде уақытша деректерді басқарудың екі жолы бар.

Әдепкі бойынша, контейнерде жұмыс істейтін қолданба арқылы жасалған файлдар жазылатын контейнер қабатында сақталады. Бұл механизм жұмыс істеуі үшін арнайы ештеңе конфигурациялау қажет емес. Бұл арзан және көңілді болып шығады. Қолданба жай ғана деректерді сақтап, өз ісін жалғастыруы керек. Дегенмен, контейнер өмір сүруін тоқтатқаннан кейін, қарапайым түрде сақталған деректер де жоғалады.

Docker-те уақытша файлдарды сақтау стандартты уақытша деректерді сақтау механизмін пайдалану арқылы қол жеткізуге болатын өнімділік деңгейінің жоғарылауын қажет ететін жағдайларға қолайлы басқа шешім болып табылады. Деректеріңіздің контейнер бар уақытынан ұзағырақ сақталуы қажет болмаса, tmpfs контейнеріне қосылуға болады - хосттың жедел жадын пайдаланатын уақытша ақпарат қоймасы. Бұл деректерді жазу және оқу операцияларының орындалуын тездетеді.

Контейнер жұмысын тоқтатқаннан кейін де деректерді сақтау қажет болатын жағдайлар жиі кездеседі. Ол үшін бізге деректерді сақтаудың тұрақты механизмдері қажет.

Деректерді тұрақты сақтау

Деректердің қызмет ету мерзімін контейнердің қызмет ету мерзімінен ұзартудың екі жолы бар. Бір жолы - байлау технологиясын пайдалану. Бұл тәсілдің көмегімен, мысалы, шын өмірдегі қалтаны контейнерге орнатуға болады. Docker-тен тыс процестер де осындай қалтада сақталған деректермен жұмыс істей алады. Осылай ма қарау tmpfs орнату және байлау орнату технологиясы.

Докерді үйрену, 6-бөлім: Деректермен жұмыс
tmpfs және байланыстыру монтажын орнату

Bind mount технологиясын пайдаланудың кемшіліктері оны пайдалану деректердің сақтық көшірмесін жасауды, деректерді тасымалдауды, бірнеше контейнерлер арасында деректерді ортақ пайдалануды қиындатады. Деректерді тұрақты сақтау үшін Docker томдарын пайдалану әлдеқайда жақсы.

Томдар Docker

Том дегеніміз - хост машинасында контейнерлерден тыс орналасқан файлдық жүйе. Томдарды Docker жасайды және басқарады. Мұнда Docker томдарының негізгі қасиеттері берілген:

  • Олар ақпаратты тұрақты сақтау құралы болып табылады.
  • Олар тәуелсіз және контейнерлерден бөлінген.
  • Оларды әртүрлі контейнерлер арасында бөлісуге болады.
  • Олар деректерді тиімді оқу мен жазуды ұйымдастыруға мүмкіндік береді.
  • Көлемдерді қашықтағы бұлт провайдерінің ресурстарына орналастыруға болады.
  • Оларды шифрлауға болады.
  • Оларға атау беруге болады.
  • Контейнер көлемді деректермен алдын ала толтыруды ұйымдастыра алады.
  • Олар тестілеуге ыңғайлы.

Көріп отырғаныңыздай, Docker томдарының таңғажайып қасиеттері бар. Оларды қалай жасау керектігі туралы сөйлесейік.

Томдарды құру

Томдарды Docker немесе API сұраулары арқылы жасауға болады.

Мұнда контейнерді іске қосу кезінде көлем жасауға мүмкіндік беретін Dockerfile нұсқаулығы берілген.

VOLUME /my_volume

Ұқсас нұсқаулықты пайдаланған кезде, Docker контейнерді жасағаннан кейін көрсетілген жерде бұрыннан бар деректерді қамтитын том жасайды. Dockerfile арқылы том жасасаңыз, бұл томның бекіту нүктесін көрсету қажеттілігінен босатпайтынын ескеріңіз.

Сондай-ақ JSON пішімін пайдаланып Docker файлында томдарды жасауға болады.

Сонымен қатар, контейнер жұмыс істеп тұрған кезде пәрмен жолы құралдары арқылы томдарды жасауға болады.

Пәрмен жолынан томдармен жұмыс істеу

▍Дыбыс жасау

Оқшау томды келесі пәрмен арқылы жасауға болады:

docker volume create —-name my_volume

▍Көлемдер туралы ақпаратты табыңыз

Docker томдарының тізімін көру үшін келесі пәрменді пайдаланыңыз:

docker volume ls

Белгілі бір томды келесідей зерттеуге болады:

docker volume inspect my_volume

▍Дыбыс деңгейін жою

Томды келесідей жоюға болады:

docker volume rm my_volume

Контейнерлер пайдаланбайтын барлық томдарды жою үшін келесі пәрменге жүгінуге болады:

docker volume prune

Томдарды жою алдында Docker сізден осы әрекетті растауды сұрайды.

Егер том контейнермен байланысты болса, сәйкес контейнер жойылмайынша бұл томды жою мүмкін емес. Сонымен қатар, контейнер жойылса да, Docker мұны әрқашан түсінбейді. Бұл орын алса, келесі пәрменді пайдалануға болады:

docker system prune

Ол Docker ресурстарын тазалауға арналған. Осы пәрменді орындағаннан кейін күйі бұрын қате болған томдарды жою мүмкіндігі болуы керек.

--mount және --volum жалаулары

Томдармен жұмыс істеу үшін, пәрменді шақырған кезде docker, жиі жалаушаларды пайдалану қажет болады. Мысалы, контейнер жасау кезінде көлем жасау үшін мына құрылымды пайдалануға болады:

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

Ежелгі уақытта (2017 жылға дейін) ту танымал болды --volume. Бастапқыда бұл жалауша (оны қысқартылған түрде де қолдануға болады, содан кейін ол ұқсайды -v) дербес контейнерлер және жалау үшін пайдаланылды --mount - Docker Swarm ортасында. Дегенмен, Docker 17.06 нұсқасы бойынша жалауша --mount кез келген сценарийде қолдануға болады.

Айта кету керек, туды пайдалану кезінде --mount пәрменде көрсетілуі керек қосымша деректердің көлемі артады, бірақ бірнеше себептерге байланысты бұл нақты жалаушаны пайдаланбаған дұрыс. --volume. Жалау --mount қызметтермен жұмыс істеуге немесе көлемді драйвер опцияларын көрсетуге мүмкіндік беретін жалғыз механизм. Сондай-ақ, бұл жалаушамен жұмыс істеу оңайырақ.

Docker деректерін өңдеу пәрмендерінің бар мысалдарында сіз жалаушаны пайдаланудың көптеген мысалдарын көре аласыз. -v. Бұл пәрмендерді өзіңізге бейімдеуге тырысқанда, жалаушалар екенін есте сақтаңыз --mount и --volume әртүрлі параметр пішімдерін пайдаланыңыз. Яғни, сіз жай ғана ауыстыра алмайсыз -v туралы --mount және жұмыс тобын алыңыз.

арасындағы негізгі айырмашылық --mount и --volume жалаушаны пайдаланғанда --volume барлық параметрлер бір өрісте және пайдалану кезінде жинақталады --mount параметрлері бөлінеді.

-мен жұмыс істегенде --mount параметрлер кілт-мән жұптары ретінде ұсынылған, дәлірек айтқанда, ол ұқсайды key=value. Бұл жұптар үтірмен бөлінген. Мұнда жиі қолданылатын опциялар берілген --mount:

  • type - бекіту түрі. Сәйкес кілттің мәні болуы мүмкін буу, көлем немесе tmpfs. Бұл жерде біз томдар туралы айтып отырмыз, яғни біз құндылыққа қызығушылық танытамыз volume.
  • source - бекіту көзі. Атаулы томдар үшін бұл томның атауы. Аты жоқ томдар үшін бұл кілт көрсетілмеген. Оны қысқартуға болады src.
  • destination - файл немесе қалта контейнерге орнатылған жол. Бұл кілтті қысқартуға болады dst немесе target.
  • readonly - жоспарланған көлемді орнатады тек оқуға арналған. Бұл кілтті пайдалану міндетті емес және оған ешқандай мән тағайындалмайды.

Мұнда қолданудың мысалы келтірілген --mount көптеген опциялармен:

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

Нәтижелері

Мұнда Docker томдарымен жұмыс істеу кезінде пайдалануға болатын кейбір пайдалы пәрмендер берілген:

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

Мұнда жиі қолданылатын опциялардың тізімі берілген --mount, пішін пәрменінде қолданылады docker run --mount my_options my_image:

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

Енді біз осы Docker сериясын аяқтадық, енді Docker үйренушілері қайда бара алатыны туралы бірнеше сөз айтудың уақыты келді. осында Docker туралы жақсы мақала. осында Docker туралы кітап (осы кітапты сатып алғанда, оның ең соңғы басылымын алуға тырысыңыз). осында тәжірибені технологияны үйренудің ең жақсы тәсілі деп санайтындарға арналған тағы бір кітап.

Құрметті оқырмандар! Жаңадан бастаушыларға қандай Docker материалдарын ұсынар едіңіз?

Докерді үйрену, 6-бөлім: Деректермен жұмыс

Ақпарат көзі: www.habr.com

пікір қалдыру